Как я могу добавить историю подрывной деятельности в GIT, если GIT моложе? - PullRequest
1 голос
/ 26 мая 2011

Я работаю над проектом, и мне приходит в голову, что я внес некоторые изменения перед тем, как перейти на git, к которому мне нужно добраться. Я хотел бы использовать функции GIT для работы над проблемой.

Мой вопрос: как я могу взять свою историю .svn и объединить ее с .git таким образом, чтобы поместить коммиты .svn в их правильные исторические контексты в хост-репозиторий git?

Имеет смысл?

1 Ответ

1 голос
/ 26 мая 2011

Я сам не пробовал, но на странице man git-svn используются следующие команды для «отслеживания и внесения в ствол управляемого Subversion проекта».

# Clone a repo (like git clone):
        git svn clone http://svn.example.com/project/trunk
# Enter the newly cloned directory:
        cd trunk
# You should be on master branch, double-check with 'git branch'
        git branch
# Do some work and commit locally to git:
        git commit ...
# Something is committed to SVN, rebase your local changes against the
# latest changes in SVN:
        git svn rebase
# Now commit your changes (that were committed previously using git) to SVN,
# as well as automatically updating your working HEAD:
        git svn dcommit
# Append svn:ignore settings to the default git exclude file:
        git svn show-ignore >> .git/info/exclude

Это должно работать до тех пор, пока вы не запустили git merge или git pull в ветке, из которой планируете выполнить dcommit, как описано ниже. Однако, чтобы быть в безопасности, вы действительно должны прочитать все предостережения на странице руководства git-svn для себя.

Ради простоты и взаимодействуя с Subversion, это рекомендовал всем пользователям git svn клонировать, извлекать и dcommit непосредственно из сервер SVN, и избежать всего мерзавца операции клонирования, вытягивания, слияния, выталкивания между git репозиториями и ветками. Рекомендуемый метод обмена код между ветками git и пользователями git format-patch и git am, или просто 'отправка в хранилище SVN.

Запуск git merge или git pull НЕ рекомендуется на ветке, которую вы планируете из-за пользователей Subversion не может видеть слияния, которые вы сделали. Кроме того, если вы сливаете или вытягиваете из мерзавец ветка, которая является зеркалом Филиал SVN, dcommit может передать неправильная ветвь.

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