Как я могу импортировать структуру каталогов в SVN, сохранив одинаковые даты изменения файлов и папок? - PullRequest
3 голосов
/ 04 ноября 2008

У меня есть большое дерево исходников (> 2 ГБ, дерево сборки WINCE), которым я бы хотел начать управлять с помощью Subversion. До этого момента управление версиями осуществлялось путем хранения нескольких копий дерева и использования Beyond Compare для поиска различий.

Последний большой камень преткновения, который я вижу при использовании Subversion, заключается в том, что он изменяет временную метку файла, чтобы она была временем фиксации. Это делает сравнение Beyond Compare намного более трудоемким, потому что вы должны выполнить двоичное сравнение, чтобы найти изменения.

Я смотрел на версию метаданных ветви дерева исходных текстов Subversion, но я бы предпочел не пытаться объединить этот код 2006 года с текущим исходным кодом SVN.

Спасибо

Dave

Ответы [ 4 ]

2 голосов
/ 04 ноября 2008

Существует опция конфигурации SVN, которая контролирует, как метки времени хранятся в хранилище:

use-commit-times

Обычно ваши файлы рабочей копии имеют временные метки, которые отражают последний раз они были тронуты любым процессом, будь то ваш собственный редактор или какая-то подкоманда svn. Это вообще удобно для людей, развивающихся программное обеспечение, потому что системы сборки часто смотреть на метки времени как способ решая, какие файлы должны быть перекомпилировать.

В других ситуациях, однако, это иногда приятно для рабочей копии файлы имеют метки времени, которые отражают в последний раз они были изменены в репозиторий. Команда экспорта SVN всегда помещает эти «последний коммит» метки времени »на деревьях, которые он производит. Установив эту переменную конфигурации в да, svn checkout, svn update, svn Команды switch и svn revert будут также установите отметки времени последнего принятия файлы, к которым они прикасаются.

См. Область конфигурации времени выполнения и Параметры конфигурации

Кстати, за гранью сравнения скалы! Я использую все упомянутые, svn diff, TortoiseMerge и BC2. BC2 является наиболее полным.

0 голосов
/ 21 сентября 2012

Нужно ли для каждого файла конфигурации клиента m / c установить для параметра use-commit-times значение yes или есть ли возможность централизовать это в каталоге установки Subversion?.

0 голосов
/ 04 ноября 2008

После быстрой проверки: если вы фиксируете файл из рабочей копии, он сохраняет свою метку времени (время последней модификации). Даже после обновления (без дальнейших удаленных изменений в этом файле) файл сохраняет отметку времени последней модификации. Тест проводился на Linux с Subversion версии 1.4.6.

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

Таким образом, вы сохраняете метки времени последней модификации.

Кроме того: почему вы хотите использовать Beyond Compare для сравнения. Вам больше не нужно будет хранить разные каталоги для отражения разных версий. А у Subversion есть собственная отличительная особенность для подготовки различий для комбинаций ревизий.

0 голосов
/ 04 ноября 2008

Subversion сделает сравнение намного быстрее, чем даже за пределами сравнения.

Если вы используете tortoiseSVN, вы даже можете использовать его в качестве внешнего инструмента различий.

...