Как партизанский VC с git, пока вынужден использовать CVS на работе? - PullRequest
8 голосов
/ 06 марта 2010

Мое место работы в настоящее время использует CVS. Планируется перемещение git, но это может произойти долго. В то же время у меня есть проект для одного человека, и я решил использовать git для своего личного развития. Разветвление, постановка коммитов, перебазирование и т. Д. Было фантастическим! Но, к сожалению, в какой-то момент этот проект и его историю необходимо импортировать в CVS, чтобы другие могли проверить мой прогресс.

Какой лучший способ ...

  • импортировать текущий проект (в идеале в виде набора отдельных коммитов / ревизий) в CVS
  • разрешить повторный импорт будущих изменений в CVS
  • (бонусный вопрос - идеально, но не обязательно) объединить любые изменения CVS других разработчиков обратно в git

На данный момент в CVS ничего нет, если это имеет значение. (И если бы у меня был свой путь, в CVS ничего бы не было, но я пока застрял с ним!) Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 06 марта 2010

git cvsimport и git cvsexportcommit могут дать вам рабочий процесс, аналогичный git svn

2 голосов
/ 06 марта 2010

Хотя у меня нет явных знаний CVS, я бы предложил следующую настройку.

  • Work\Project.git <- git repo </li>
  • Sync\Project <- мерзавец-клон мастера филиал в <code>..\Work\Project.git + CVS контроль версий в этой папке.

Чем вы можете делать все свои вещи из git в Project.git и когда вы хотите импортировать в CVS, вы переходите к Sync\Project и делаете git pull, чтобы воспроизвести изменения в вашем каталоге синхронизации (возможно, вам нужно сделать полное оформление заказа в CVS?).

Для обратного сценария вам может потребоваться работа с веткой импорта, но я думаю, что было бы возможно получить изменения от ваших коллег в папке синхронизации, но сделать это в новой ветке и объединить это с вашим мастером ветка, которую вы вытащили из вашего основного репозитория git. После этого слияния вы можете git push внести изменения в ваш Work\Project.git.

По сути, используйте свой репозиторий синхронизации так же, как если бы вы были другим разработчиком. Вы можете даже позволить обычному репозиторию извлекать данные из вашей синхронизации (поэтому отправляйте запрос на извлечение себе ;-)) или использовать механизм исправлений git send для обновления основного репозитория git.

Импортируя набор изменений CVS в git, есть git-cvsimport, который должен помочь вам в этом.

...