Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.171] |
|
Сообщ.
#1
,
|
|
|
Нубик пока в VCSах - пытаюсь найти свое. Может, в будущем и пересяду на какие-нибудь меркуриалы с базаарами, но пока у них все виндовские гуи глючат, остановился на Гите.
Делаю форк перевода для одной игрушки, стараясь поддерживать не только последнюю ее версию, но и некоторые более старые. Каждая ветка хранилища соответствует одной версии игры, но мне неудобно постоянно переключать ветки: частенько работаю с парой-тройкой версий параллельно, юзая сторонний софт и т.д. Посему пока что делаю так: когда выходит новая версия, тупо копирую папку перевода вместе с репой, и в ней уже коммичу для новой версии, а в старой папке продолжаю коммитить соответственно для старой. Но во-первых это отнимает возможность черри-пика и т.п. между активно-поддерживаемыми версиями, а во-вторых если решу выкладывать сие на какой-нибудь github (определившись окончательно со струтурой реп и с удобным мне подходом их использования), то нужно будет еще все эти репы в одну сливать. Так что в идеале, конечно, хотелось бы одно хранилище, но несколько извлеченных веток. В SVN-то подобное делалось просто извлечением несколько рабочих копий, но она меня бесит. А как в Git? Хук-скрипты какие-то писать гую, перенаправляя команды в другую репу? |
Сообщ.
#2
,
|
|
|
А сделать общий главный репозиторий (можно и в папке) с копией для каждой ветки не пробовал делать? Синхронизация вроде с ветки на ветку не должна перекидывать.
Сам впрочем так еще не пробовал. Когда приходилось работать с параллельными ветками (переводил старый проект с CVS - приходилось эти ветки еще вылавливать), делал чек-ауты. Добавлено Кстати, несколько рабочих копий - нормальная, и вполне удобная, практика. |
Сообщ.
#3
,
|
|
|
Чет я тебя не пойму - ты мне о Гите пишешь или о Сабверсии? Ести о Git, то что значит "главный репозиторий", и как его сделать? Если о SVN, то я эту хрень больше видеть не хочу в своих проектах, написал же
Мое отношении к системам управления версиями Мне нужно средство, помогающее мне разбираться со своими разработками - бекапить, создавать разные варианты одного и того же, делиться кодом с другими... и средство, которое уж точно я контролирую, а не которое контролирует меня. Пишу я обычно довольно спонтанно, и даже когда нацелен на какую-то определенную переделку, могу по пути заметить какую-то мелочь и по-быстрому ее исправить, пока не забыл. А убери эту спонтанность - и можно хоть вообще ничего не писать. В итоге практически все коммиты изначально получаются многоплановыми, и валяться в виде этакого бардака или полубардака они могут довольно долго. Но периодически все ж появляется настрой разгрести свою свалку - как для себя, так и для тех, кому я свою репу буду выкладывать: разобрать все по темам, описать коммиты, которые сразу не описал и т.д. Так что система, не дающая переписывать историю, для меня абсолютно бесполезна. Мне и Гит-то кажется недостаточно удобным и свободным: вот почему, например, так геморройно исправляется описание какого-нибудь старого коммита, вместо того, чтоб просто тыкнуть по нему и нажать "Изменить описание"? А слить 2 коммита в один, если они идут не по порядку? В сетевых копиях хранилищ, предназначенных для всех, так и вообще, похоже, ничего нельзя переписывать... вот если б на этом форуме нельзя было править свои посты, я бы и сюда, наверное, нечасто заходил. Вопрос именно по Гиту... ну то бишь на будущее-то может вполне полезны будут и комментарии на тему, как добиться желаемого в других распределенных системах, но в ближайшее время я врядли на них перейду. |
Сообщ.
#4
,
|
|
|
Создаешь пустую папку, называешь ее project.git (так принято), заходишь в нее. По правому клику выбираешь "Git Create repository here..." (ты вроде упоминал TortoiseGit). В открывашемся окне отмечаешь галочку "Make It Bare"), "OK". Ты создал корневой репозиторий, пока пустой.
Далее - заходишь в папку, корневую для папок проектов, правый клик, "Git Clone", в первой строке (Url) указываешь папку корневого репозитория. Во второй строке (Directory) указываешь рабочую папку, где будешь работать над первой ветвью. Копируешь в рабочую папку проект, коммитишь и делаешь "Push" Повторяешь клонирование репозитория для второй ветви. Делаешь ветвление. Недостаток этого метода - у тебя будет три совпадающие копии репозитория. Я переключался довольно редко, поэтому работал в одной папке, и обходился "Switch/Checkout" из вложенного меню. Или переключался через лог. |