Вина в реорганизованном хранилище SVN - PullRequest
2 голосов
/ 08 августа 2011

git blame не показывает всю историю SVN-репозитория, у которого реорганизован макет.

Я использую git-svn для доступа к репозиторию SVN. Репозиторий SVN имел структуру с огромным деревом папок для хранения множества проектов. В прошлом году я реорганизовал и превратил макет в более стандартный макет ствола / тегов / веток. В результате все файлы в хранилище были перемещены 17 мая 2010 года.

Используя SVN-клиент subclipse из Eclipse, я могу сделать Team-> Show Annotation , и он показывает историю файла, как я ожидаю - строки кода, измененные в 2009 году, правильно помечены автором / дата / комментарий при регистрации.

Однако, git blame в репозитории git, который я клонировал с помощью git-svn, не очень полезен. Для всех строк кода, измененных до 17 мая 2010 г., аннотация: me / дата 17 мая 2010 г. / комментарий «реорганизация репозитория ...».

Я предполагаю, что информация все еще там, есть ли способ получить git blame, чтобы отобразить ее? Я очень умозрительно пытался git blame -C -C -C... безуспешно.

1 Ответ

0 голосов
/ 18 февраля 2012

Вы уверены, что старые коммиты вообще появляются в git-репо? Возможно, ваша реорганизация в svn была слишком большой, чтобы git-svn могла им следовать. Найдите svn-ревизию до переезда 17 мая, затем git svn find-rev r12345 с этим номером, чтобы найти соответствующий хэш git, если он есть. Затем сделайте git checkout и посмотрите, есть ли в нем интересующие вас файлы.

Если вы сказали git-svn, что в вашем репо используется «стандартный» макет ствола / веток / тегов, он, вероятно, не сможет понять другой макет. Возможно, вам придется повторить импорт git-svn в два этапа: один для вашего старого макета, а затем снова для вашего нового макета. Вы можете добиться этого, используя аргумент -r для git svn fetch, чтобы получить только определенный диапазон ревизий.

...