Как я нахожу полезный код ранее удаленным, но все еще сохраненным в управлении исходным кодом?

Каждый раз, когда кто-то спрашивает, что сделать с кодом, который больше не необходим, ответ обычно, "удаляют его, восстанавливают его от управления исходным кодом, если Вам нужен он назад".

Теперь, как я нахожу что часть исходного кода в репозитории? Давайте ограничим объем SVN для простоты - я подозреваю, что использование любой другой системы управления исходным кодом не будет иметь большого значения в этом аспекте (исправьте меня, если я неправ).

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

8
задан Community 23 May 2017 в 12:18
поделиться

5 ответов

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

  • вы не знаете, в каких файлах он находится;
  • вы не знаете исходный код или его части
  • вы не можете вспомнить, когда произошло удаление кода.
  • ...

Компьютер не может читать наши мысли. Тем не менее, есть, конечно, и другие инструменты, которые вам помогут, такие как упомянутые, или графические интерфейсы, такие как trac (которые мне очень нравятся для этой цели).

3
ответ дан 5 December 2019 в 10:01
поделиться

Вам нужно использовать инструмент различий, они есть в большинстве репозиториев svn. Щелкните правой кнопкой мыши файл, который вы хотите откатить, и выберите «diff» или «разница» или аналогичный (расходы на реализацию), а затем он попросит сравнить текущую версию с более ранней версией - если вы знаете приблизительную дату более ранней версии. затем выберите эту версию (отметки даты / времени обычно очевидны), и вы увидите две версии рядом. Затем вы можете выбрать, какие биты разные (обычно окрашены в красный цвет), щелкните их правой кнопкой мыши и выберите их интегрирование.

Клиентский инструмент, который вы используете для SVN, определит детали.

5
ответ дан 5 December 2019 в 10:01
поделиться

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

SVN Query - http://svnquery.tigris.org/

«SvnQuery - это быстрая полнотекстовая поисковая машина для репозиториев подрывной деятельности. Она выполняет поиск в каждом файл в каждой ревизии. Индексируется не только содержимое файла , но также его полные метаданные , такие как путь, автор, комментарии и свойства. Предоставляется простой, похожий на Google веб-интерфейс, но ожидается, что библиотеку запросов и механизм индексации можно будет повторно использовать в других интерфейсах, например, в веб-сервисе или подключаемом модуле Visual Studio.

SvnQuery реализован в C # 3.0. и ASP.NET используется для веб-интерфейса. Полнотекстовый поиск выполняется Lucene.Net, что обеспечивает поразительную производительность ... "

Язык запросов i описаны здесь:
http://svnquery.tigris.org/servlets/ProjectProcess?pageID=o0dpdE&freeformpage=SvnWebQueryHelp

2
ответ дан 5 December 2019 в 10:01
поделиться

Я думаю о дате, когда я знал, что отсутствующий код был активен, и извлекаю все исходное дерево, как оно было в эту дату . Если я ошибаюсь в дате, я использую x день / неделю / месяц в обе стороны, пока не остановлюсь на нем.

svn checkout --revision {2002-02-17}
3
ответ дан 5 December 2019 в 10:01
поделиться

Другой способ - поиск сообщения журнала - вы, вероятно, оставили комментарий примерно следующего содержания:

Удалена функциональность XYZ

, когда вы внесли изменения.

4
ответ дан 5 December 2019 в 10:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: