Я собирался задать аналогичный вопрос, который я воспроизвожу здесь для целей поиска (ответ ниже):
У меня есть рабочая копия источника проекта с использованием Subversion.Теперь предположим, что у меня есть две разные проблемы, которые нужно исправить в одном и том же файле, в то время как у меня нет доступа к серверу svn по какой-либо причине.Я не хочу, чтобы эти два исправления были смешаны в глобальном патче: для ясности я хотел бы иметь патч для каждого исправления.Поэтому я хотел бы иметь возможность «svn diff» между исходной ревизией, первой измененной ревизией и последней ревизией, которые не были зафиксированы на сервере - или, альтернативно, сказал, чтобы иметь возможность фиксировать каждую ревизию независимо.
Как ты это делаешь?Есть ли способ пометить ревизии локально с помощью svn?
Тогда я нашел этот вопрос, и ответ Маверика вызвал новое ключевое слово: "клон".Ища «svn clone», я обнаружил, что хорошим ответом может быть использование «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{^,}