Использование отдельной системы контроля версий для изменений, когда основной контроль версий недоступен - PullRequest
4 голосов
/ 08 марта 2010

Вот моя ситуация:

Проект, над которым я сейчас работаю использует систему контроля версий (Microsoft Team Foundation) это размещены и управляются удаленно покупатель. Я отвечаю за выполнение массовый рефакторинг / исправление ошибок после кто-то оставил ужасный беспорядок код позади. По нескольким причинам что я не буду подробно здесь * я не могу совершить контроль версий мой постепенные изменения, пока я исправляю вещи вверх; и я никак не могу дать там отдельную ветку.

Вот мой вопрос:

Мне нужна система контроля версий, которую я могу использовать локально. Я не могу просто продолжать делать «исходную папку zip и делать ее резервную копию». Я хочу отслеживать изменения. Я хочу зафиксировать сообщения. Я хочу посмотреть, что я сделал и когда и почему через пару месяцев. В крайнем случае, я устал полагаться на команду VS 'отменить' и оставлять комментарии, отслеживая, что я делаю и как это было раньше.

Вот что я бы сделал:

Я бы установил mercurial / git локально и начал бы создавать версии своих собственных каталогов.

Проблема в том, что я не уверен, что это лучший способ. Советы? Идеи? Я совсем не знаком ни с Visual Studio, ни с Team Foundation и, похоже, не могу с ними разобраться (я не знаю, как все «названо», поэтому я не знаю, что я ищу) , Можно ли с помощью таких инструментов сделать то, что я описал?

* По сути, клиенту не обязательно знать, что наш ведущий разработчик вышел из себя и оставил самый ужасный кодовый беспорядок, который я когда-либо видел; что по крайней мере 3 человека «пытались исправить» его код в спешке, чтобы исправлять ошибки; что это закончилось в одном классе с длинным методом 400+, включая один цикл for, по крайней мере, в 5 местах, где код повторяется, но не полностью, не используется логика, неправильные комментарии, циклы while (true) и увеличение счетчика 'for' в теле цикла для просмотра списка массивов. По сути, мы надеемся, что клиент не заметит, что происходит, и если они это сделают, мы сможем исправить это, когда они скулиют.

1 Ответ

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

Обычный подход заключается в:

  • "git init" непосредственно в каталоге, которым вы хотите управлять локально
  • добавить .gitignore, чтобы не добавлять какие-либо специфичные для VCS данные или каталог
  • git добавить .gitignore и зафиксировать
  • git add .
  • совершить

Таким образом, у вас есть локальное репо, которое вы можете затем клонировать, делать ветки, патчи, ...
(Я делаю это для представлений ClearCase, например )

Аналогичный подход с аналогичными командами действителен для Hg Mercurial.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...