2014-09-10 8 views
0

У меня есть рабочая копия с внешней компанией, использующей сервер Subversion. Локально у меня есть репозиторий git с тем же проектом, поскольку в моей компании мы используем git для всего. Я хочу, чтобы изменения из моего хранилища git были на сервере Subversion на регулярной основе, предпочтительно автоматическим способом. Я попытался использовать два разных средства слияния для этой цели kdiff3 (http://kdiff3.sourceforge.net/) и Kaleidoscope (http://www.kaleidoscopeapp.com/), однако в обоих случаях при копировании файлов из папки git в рабочую копию Subversion удаляется папка .svn, которая не является тем, что я хочу, это ставит рабочую копию Subversion в «заблокированное» состояние. Я также могу сделать архив git repo и скопировать архивированную папку в рабочую копию Subversion, но при выполнении делегирования файлов в git repo сделать пасту в рабочей копии Subversion не удастся удалить отсутствующие файлы, чтобы она меня доставала что я хочу. Любые предложения относительно подхода, который я не рассматривал?Что такое хороший способ разбить папку на рабочую копию Subversion

ответ

4

Использование единой точки изменения (рабочий реж Git), и связать Git-репозиторий с Subversion, используя git-svn (или SubGit)

+0

Я пошел с использованием SubGit в качестве опции спасибо! –

0

Первый (на основе командной строки) инструмент, который приходит на ум для этого вида предмет есть rsync. Самое приятное в том, что он будет распространять удаление файлов, игнорировать файлы, которые не были изменены и т. Д. В нем есть много параметров командной строки, которые позволяют вам настроить его поведение. Вот один из возможных вариантов: example. Но это просто ссылка, которую я нашел, быстро используя googling, используя rsync для слияния изменений в другую папку. Вам придется сделать некоторые исследования и эксперименты, чтобы увидеть, если Rsync соответствует вашим потребностям:)

Так рабочий процесс мог бы быть, если предположить, что две операции РЕПО в настоящее время синхронизации:

  1. Внести изменения в мерзавца рабочей директории (и do git фиксирует/толкает по мере необходимости)
  2. 'svn update' в svn working dir
  3. Используйте rsync для слияния изменений из git working dir в svn working dir.
  4. Используйте инструменты svn для проверки и фиксации изменений в рабочем каталоге svn.
Смежные вопросы