Как я сохраняю svn:external актуального мерзавца-svn использования?

52
задан Jonas 16 August 2010 в 09:47
поделиться

4 ответа

Решение, которое я закончил тем, что использовал, было только к символьной ссылке на другой git-svn клоны на моем локальном поле. Это работало вполне прилично: это позволяет мне фиксировать, возвращается, и это позволяет мне делать локальные изменения на проекте справедливым для получения их в проект B.

24
ответ дан James A. Rosen 7 November 2019 в 09:32
поделиться

Лучшее средство интеграции svn внешний облик с мерзавцем-svn, которого я видел, является этим сценарий , который клонирует Ваш внешний облик в .git_externals/каталог и создает символьные ссылки, и исключите файлы, в которых Вы нуждаетесь. Я нахожу это простым и прямым решением. YMMV.

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

25
ответ дан Paul 7 November 2019 в 09:32
поделиться

Я решил написать "простой" perl-скрипт, чтобы справиться со всем этим за меня. Я недавно выложил его на github, попробуй, может, это поможет: http://github.com/sushdm/git_svn_externals/ .

По сути, git-svn clone для всех внешних найден, и он ищет их рекурсивно, клонирует, связывает их в нужных местах и ​​исключает все каталоги .git_externals и символические ссылки, так что вы все еще можете использовать 'git svn dcommit'.

Удачи.

1
ответ дан 7 November 2019 в 09:32
поделиться

Я также сделал скрипт (доступны варианты на Perl и Ruby), который делает это для меня, он находится по адресу http://github.com/liyanage/git-tools/.

  • Рекурсивно проверяет все svn:externals
  • Можно запускать несколько раз, если клон большого репозитория прерывается на полпути. Со мной такое часто случалось. Подхватывает то, на чем остановился.
  • Добавляет все найденные и обработанные записи svn:externals в .git/info/exclude
  • Добавляет все найденные записи svn:ignore в .git/info/exclude
  • Может запускаться регулярно после первого запуска, чтобы выполнить svn:rebase во всех клонированных подрепозиториях, обнаружить новые externals и новые svn:ignores

Обновление: я больше не поддерживаю этот скрипт. Его функциональность для рекурсивного клонирования и обновления SVN-репозитория, а также другие возможности, связанные с git, доступны в новом проекте, который я активно поддерживаю: http://liyanage.github.com/git-tools/

4
ответ дан 7 November 2019 в 09:32
поделиться