Git / Mercurial локально поверх локальной проверки cvs - PullRequest
6 голосов
/ 06 сентября 2010

Я прочитал:

, и ни то, ни другое не соответствует моим потребностям.

На работе мы используем удаленное репо CVS. Доступ к этому репо осуществляется через CVS-инструменты eclipse и внутренние плагины eclipse, созданные на основе командных инструментов для eclipse. Это означает, что мы не можем перейти к лучшему vcs.

Однако я хотел бы использовать Git на своем локальном компьютере (для включения персонального ветвления), чтобы я мог выполнить следующее:

Создайте ветки в Git, а затем, как только закончите и слите их обратно в мой локальный ствол, сделайте коммит обратно в репозиторий cvs, используя инструменты команды eclipse и т. Д.

Мой план - что-то вроде следующего:

  • Скопируйте извлеченные файлы в другую папку [gitRepo].
  • Создание мастер-репозитория git в gitRepo
  • Внесите изменения в gitRepo и внесите изменения.
  • Зафиксировать gitRepo
  • Скопировать gitRepo обратно в извлеченные файлы
  • Синхронизация с удаленным резюме.

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

Существуют ли какие-либо инструменты или предлагаемые рабочие процессы, чтобы помочь мне справиться с этим? Также, насколько хорошо Git играет с файлами CVS. И наоборот, поскольку я не хочу, чтобы они заражали друг друга.

Причина, по которой прежние ссылки бесполезны, заключается в том, что они передают прямо в репозиторий cvs из репозитория git, и меня это беспокоит, так как я не хочу заражать репозиторий cvs случайно.

Следует также сказать, что изменения в GitRepo не должны сохраняться в репозитории CVS, например, мне не нужно видеть каждый толчок к git репо, отраженный в удаленном CVS.

~ Спасибо за чтение.

Ответы [ 2 ]

4 голосов
/ 06 сентября 2010

Вы можете прекрасно создать git-репо непосредственно в рабочей области CVS (очень похоже на непосредственно в любом другом инструменте VCS .

. Убедитесь, что git игнорирует любые .cvs ресурсы, и сделайтеуверен, что CVS будет игнорировать .git.
Любой коммит Git не будет напрямую отражен в CVS.

Единственный трюк состоит в том, чтобы Eclipse отображал только Git или только информацию CVS и оформление меток.
Для этого я настроил бы две разные перспективы Eclipse, в которых я деактивировал бы один или другой инструмент VCS.

3 голосов
/ 06 сентября 2010

Я сделал именно это на работе, и я нашел полезными следующие практики:

  1. Держите любую одну (master в моем случае) ветку всегда синхронизированной с CVS.Не используйте эту ветку для своего развития.Периодически обновляйте эту ветку, чтобы получать изменения, сделанные остальной частью команды.Если эти изменения имеют отношение к вашей текущей работе, сделайте merge master из вашей dev (или любой другой соответствующей) ветки.

  2. Когда вы будете готовы зарегистрироваться в CVS, переключитесь на ветку master и объедините изменения из соответствующей ветки (dev, feature и т. Д. В зависимости от ситуации).Запустите ваши тесты!

  3. Скорее всего, ваш работодатель сохранит резервные копии репозиториев CVS.Вам нужно будет найти способ сохранить резервную копию вашего git-репо.Один из способов - добавить зеркальный репозиторий в папку Dropbox и использовать хук post-commit, чтобы обновлять его после каждой фиксации.

  4. Перед уходом с работы переключитесь на ветку master.Однажды я сделал ошибку, запустив утреннюю ветку CVS up -d на утренней ветке dev, и запутался.Добавление скрипта для автоматического переключения на master перед обновлением справки.

...