Как искать репозиторий CVS?

Компания, в которой я работаю, использует CVS в качестве системы управления исходным кодом, и у нас есть приложение для интрасети (Source forge), которое предоставляет репозиторий, т.е. мы можем видеть исходный файл с помощью этого интерфейса, но он не предоставляет никакого средства поиска, где я мог бы искать код. фрагменты для заданных ключевых слов.

Я хочу написать приложение, которое может искать фрагмент кода.Ex. будет Koders.com, который обеспечивает поиск по заданному ключевому слову и дает ссылку для просмотра исходного файла. Два способа, о которых я могу думать, это

1-Поиск в репозитории cvs (доступ к которому может быть проблемой.)

2-Выполните поиск в приложении интрасети, которое предоставляет все исходные файлы.

Как вы думаете, ребята, будет правильным подходом. Я планировал проиндексировать его в отдельной базе данных и использовать для поиска, но понятия не имею, как это сделать. Любая помощь приветствуется :)


person Kapil    schedule 06.01.2010    source источник
comment
почему бы не поместить фрагменты кода в другой репозиторий, например в базу данных?   -  person Mitch Wheat    schedule 06.01.2010
comment
Это потребует дополнительных усилий. так как все разработчики проверяют код в резюме, было бы неплохо искать из исходного местоположения.   -  person Kapil    schedule 06.01.2010
comment
Что отличает фрагмент кода от любого другого возвращаемого кода? Или вы просто хотите просмотреть комментарии коммита CVS?   -  person Tarydon    schedule 06.01.2010
comment
из фрагмента кода, я имею в виду только любой зафиксированный код. извините, что ввел в заблуждение. Поиск, который я хочу, должен быть полнотекстовым поиском   -  person Kapil    schedule 06.01.2010
comment
Было бы дешевле использовать готовое приложение, чем тратить время на изобретение велосипеда. Это делает FishEye (atlassian.com/software/fisheye).   -  person skaffman    schedule 20.03.2010


Ответы (1)


Когда мне задали вопрос "Есть ли у нас файл с именем somefile.txt в репозитории CVS?" или "У нас есть файл, содержащий текст?" (поскольку у меня был доступ к основному репозиторию) я просто выполнил find команды на CVSROOT. При этом помните, что CVS хранит файлы с использованием RCS, поэтому к файлам добавляется ,v. Поэтому при поиске somefile.txt вам нужно искать файл с именем somefile.txt,v.

find $CVSROOT -type f -name somefile.txt,v

or

find $CVSROOT -type f -exec grep sometext {} \; (может быть немного сложнее, чтобы сделать это красиво, но суть понятна)

Если файл был «удален», вы увидите, что он находится в каталоге Attic. Кроме того, будьте осторожны, чтобы не редактировать эти ,v файлы, так как их легко сломать.

Если у вас нет доступа, вам придется проверить весь репозиторий, а затем выполнить поиск на локальном компьютере, но вы не получите эффективного поиска по истории.

person Tom Duckering    schedule 06.01.2010