Ответ 1
Здесь метод, который позволяет избежать хиджаков, которые наша команда использовала этот метод довольно успешно уже более года, пока мы не удалили ClearCase для Subversion (за одну политику компании, хотя это шаг назад для нашей команды - мы в основном использовали ClearCase как тупой файловой системы и практически работает изначально в git, но теперь мы используем мост git -svn, который не так хорош, как native git.)
Мы использовали два каталога: один для моментального снимка ClearCase и master git repo, который мы разделили между всей командой и никогда не редактировали файлы, а один для нашего "рабочего" каталога.
Подготовка в виде снимка ClearCase:
% git init % git add **/*.cxx **/*.h **/Makefile (and so on) % git commit -m "initial"
Затем клонируется в вашем рабочем каталоге:
% mkdir ~/work % git clone /path/to/repo
Работа в рабочем каталоге, на ветке:
% git checkout -b feature % ...edit/compile... % git add -u % git commit
Убедитесь, что моментальный снимок ClearCase обновлен с нетронутым (который он всегда был для нас, потому что мы поделились им с командой, и все мы использовали git).
Затем объедините ветвь на мастер, перезагрузив ее, чтобы избежать автоматического слияния:
% git checkout master % git pull % git checkout feature % git rebase master % git checkout master % git merge feature % git branch -d feature % git diff --name-status origin/master
Подготовьте представление ClearCase, проверив /mkelem/rmname любые измененные/новые/удаленные файлы,
основанный на выходе git diff --name-status
. Для этого мы использовали ручную script. Не забудьте проверить любые каталоги, в которые были добавлены/удалены файлы:
Затем отпустите файл git и выполните регистрацию с помощью ClearCase:
% git push % cd /path/to/repo % git reset --hard % cleartool ci `cleartool lsco -r -short -me`
Кажется, что много команд, но это включает в себя настройку, и ваш ежедневный рабочий процесс не использует много команд. Вы можете тривиально построить script вокруг шага push-back-to-ClearCase и постепенно открывать/показывать вашей команде все классные дополнительные git вещи, когда все привыкают к основному рабочему процессу.
Настоящая красота этой системы - через какое-то время, когда все компетентные с git, , вы можете тривиально очистить ClearCase и все связанные с ней индивидуальные обезьяны и сборы. Возможно, дайте компании ClearCase парня столь необходимый отдых и некоторую переподготовку с экономией. (К сожалению, в моей компании материал git был все skunkworks, и мы перешли в Subversion - вперед от ClearCase, но назад от git!)
Я сильно рекомендую использовать pristine
script из ClearCase Globally, git Locally, который запускается в представлении моментального снимка ClearCase и обеспечивает его синхронизацию и git. Мы задали это как задание cron, которое выполнялось два раза в день, а также запускало его вручную, когда мы собирались вернуться к git.
К сожалению, ссылка на сообщение в блоге уже недействительна. Однако script по-прежнему доступен на Github.