Я собирался задать аналогичный вопрос, который я воспроизвожу здесь для целей поиска (ответ ниже):
У меня есть рабочая копия исходного кода проекта, использующего subversion. Теперь предположим, что у меня есть две разные проблемы, которые нужно исправить в одном и том же файле, хотя по какой-то причине у меня нет доступа к серверу svn. Я не хочу, чтобы два исправления смешивались в глобальном патче: для ясности я хотел бы иметь патч для каждого исправления. Поэтому я хотел бы иметь возможность «svn diff» между исходной версией, первой измененной версией и последней версией, которые не были зафиксированы на сервере, или, альтернативно, иметь возможность зафиксировать каждую ревизию независимо.
Как ты это делаешь ? Есть ли способ пометить ревизии локально с помощью svn?
Затем я нашел этот вопрос, и ответ Маверика привел к появлению нового ключевого слова : "клон". В поисках «клона svn» я обнаружил, что хорошим ответом может быть использование «git-svn» (NB: дефис для имени, но не дефис для команды: «git svn»), а затем использовать git локально. Я позволю вам погуглить об этом, но вкратце:
git svn --username=skippy clone http://svn.example.org/projects/myproject -T trunk localdir
Примените первое исправление :
git add path/to/modified/file
git commit
Примените второе исправление :
git add path/to/modified/file
git commit
Затем получите идентификаторы версий :
git log --oneline|head
И чтобы увидеть изменения, добавленные ревизией a1b2c3 :
git diff a1b2c3d{^,}
person
Skippy le Grand Gourou
schedule
23.06.2011
mercurial
илиgit
. В этом случае вы можетеclone
репозиторий и отслеживать локальные изменения. И когда вы хотите, вы можетеpush
вернуть эти изменения на сервер. - person maverik   schedule 29.03.2011