понедельник, 25 ноября 2013 г.

Using Grep command for search in project sources

Problem: fast search some code blocks in big projects with lots of nested directories using command-line tools.

Solving: you need grep command. Its really great tool for search text in files with regular expressions, coming from Unix OS and now available on Windows, *nix and Mac OS. All you need is:

grep -rin --include="*.php" "function Action(" /path/to/directory/

So, let's consider parameters passed to grep command:

  • -r — the search will be recursive, that is in all subdirectories in our main directory
  • -i — the search will be case insensitive
  • -n — output will contain line numbers
  • --include="*.php" — search will be only in files that has php extension. Of course, available all regular expressions for describing needed file names
  • "function Action(" — needed text
  • /path/to/directory — directory for search accordingly

If you need just filenames without in-line matches, you can use parameter -l:

grep -rinl --include="*.php" "function Action(" /path/to/directory/

That's all - good luck in your search:)

среда, 20 ноября 2013 г.

Git и Bitbucket за 20 минут


Git - распределенная система контроля версий файлов, созданная под руководством Линуса Торвальдса. Системы контроля версий позволяют хранить несколько версий одних и тех же файлов с возможностью возврата к старому варианту, просмотра изменений, их авторов и т.д.

Распределенная система контроля версий не нуждается в центральном сервере, хранящем версии, вся история хранится на каждом локальном компьютере и при необходимости синхронизируется с аналогичным хранилищем другого компьютера. В этом отличие Git от, например, SVN - можно установить Git только на локальный компьютер и хранить все версии у себя, не дублируя на сервер. Однако в случае командной работы все же удобно иметь сервер, хранящий версии. Такой сервер также можно воспринимать как бэкап всех актуальных файлов и их версий, доступный из любой точки мира.

Про Git есть отличная бесплатная книга с соответствующим названием Pro Git, также спасибо соотечественникам за бескорыстный перевод - рекомендую.

Здесь я приведу краткие данные, позволяющие быстро начать работу с Git и Bitbucket. Bitbucket - это сервис, централизованно хранящий репозитории Git, бесплатный для 5 пользователей и платный для больших команд. Преимущество Bitbucket перед аналогичным сервисом GitHub - возможность создания закрытых репозиториев (не open source).