На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> TortoiseGit: параллельная работа с ветками
    Нубик пока в VCSах - пытаюсь найти свое. Может, в будущем и пересяду на какие-нибудь меркуриалы с базаарами, но пока у них все виндовские гуи глючат, остановился на Гите.
    user posted image
    Делаю форк перевода для одной игрушки, стараясь поддерживать не только последнюю ее версию, но и некоторые более старые. Каждая ветка хранилища соответствует одной версии игры, но мне неудобно постоянно переключать ветки: частенько работаю с парой-тройкой версий параллельно, юзая сторонний софт и т.д. Посему пока что делаю так: когда выходит новая версия, тупо копирую папку перевода вместе с репой, и в ней уже коммичу для новой версии, а в старой папке продолжаю коммитить соответственно для старой. Но во-первых это отнимает возможность черри-пика и т.п. между активно-поддерживаемыми версиями, а во-вторых если решу выкладывать сие на какой-нибудь github (определившись окончательно со струтурой реп и с удобным мне подходом их использования), то нужно будет еще все эти репы в одну сливать. Так что в идеале, конечно, хотелось бы одно хранилище, но несколько извлеченных веток. В SVN-то подобное делалось просто извлечением несколько рабочих копий, но она меня бесит. А как в Git? Хук-скрипты какие-то писать гую, перенаправляя команды в другую репу?
    Сообщение отредактировано: F.Phoenix -
      А сделать общий главный репозиторий (можно и в папке) с копией для каждой ветки не пробовал делать? Синхронизация вроде с ветки на ветку не должна перекидывать.
      Сам впрочем так еще не пробовал. Когда приходилось работать с параллельными ветками (переводил старый проект с CVS - приходилось эти ветки еще вылавливать), делал чек-ауты.

      Добавлено
      Кстати, несколько рабочих копий - нормальная, и вполне удобная, практика.
        Чет я тебя не пойму - ты мне о Гите пишешь или о Сабверсии? Ести о Git, то что значит "главный репозиторий", и как его сделать? Если о SVN, то я эту хрень больше видеть не хочу в своих проектах, написал же<_<
        Мое отношении к системам управления версиями
        Мне нужно средство, помогающее мне разбираться со своими разработками - бекапить, создавать разные варианты одного и того же, делиться кодом с другими... и средство, которое уж точно я контролирую, а не которое контролирует меня. Пишу я обычно довольно спонтанно, и даже когда нацелен на какую-то определенную переделку, могу по пути заметить какую-то мелочь и по-быстрому ее исправить, пока не забыл. А убери эту спонтанность - и можно хоть вообще ничего не писать. В итоге практически все коммиты изначально получаются многоплановыми, и валяться в виде этакого бардака или полубардака они могут довольно долго. Но периодически все ж появляется настрой разгрести свою свалку - как для себя, так и для тех, кому я свою репу буду выкладывать: разобрать все по темам, описать коммиты, которые сразу не описал и т.д.
        Так что система, не дающая переписывать историю, для меня абсолютно бесполезна. Мне и Гит-то кажется недостаточно удобным и свободным: вот почему, например, так геморройно исправляется описание какого-нибудь старого коммита, вместо того, чтоб просто тыкнуть по нему и нажать "Изменить описание"? А слить 2 коммита в один, если они идут не по порядку? В сетевых копиях хранилищ, предназначенных для всех, так и вообще, похоже, ничего нельзя переписывать... вот если б на этом форуме нельзя было править свои посты, я бы и сюда, наверное, нечасто заходил.

        Вопрос именно по Гиту... ну то бишь на будущее-то может вполне полезны будут и комментарии на тему, как добиться желаемого в других распределенных системах, но в ближайшее время я врядли на них перейду.
        Сообщение отредактировано: F.Phoenix -
          Создаешь пустую папку, называешь ее project.git (так принято), заходишь в нее. По правому клику выбираешь "Git Create repository here..." (ты вроде упоминал TortoiseGit). В открывашемся окне отмечаешь галочку "Make It Bare"), "OK". Ты создал корневой репозиторий, пока пустой.

          Далее - заходишь в папку, корневую для папок проектов, правый клик, "Git Clone", в первой строке (Url) указываешь папку корневого репозитория. Во второй строке (Directory) указываешь рабочую папку, где будешь работать над первой ветвью.
          Копируешь в рабочую папку проект, коммитишь и делаешь "Push"
          Повторяешь клонирование репозитория для второй ветви. Делаешь ветвление.

          Недостаток этого метода - у тебя будет три совпадающие копии репозитория.

          Я переключался довольно редко, поэтому работал в одной папке, и обходился "Switch/Checkout" из вложенного меню. Или переключался через лог.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0193 ]   [ 15 queries used ]   [ Generated: 27.04.24, 17:50 GMT ]