Подтвердить что ты не робот

Git -SVN: обновление репозитория Git с централизованного сервера SVN

Я работаю над проектом, для которого каждый использует SVN как централизованный сервер, и все подталкивают изменения, которые они делают на этом сервере. Я хочу использовать Git локально, и я довольно новичок в git svn. Я сделал git svn clone репозитория с git svn clone -r HEAD https://svn.repo/app/branch а я хочу сделать обновление через git.

Мне нужна команда 'git pull like', но для выполнения конкретной ревизии репо сервера SVN. Также есть команда 'fetch like' для извлечения из конкретной ревизии репо сервера SVN?

У меня нет никаких .svn папок в моем клонированном проекте, а git remote ничего мне не дает. Однако я сделал git config -l, и я получил URL-адрес сервера SVN, поэтому каким-то образом я связан с сервером SVN. Я не знаю, как получить или потянуть, хотя.

Спасибо!

4b9b3361

Ответ 1

Лучший способ работы с репозиторием Subversion через Git:

  • git svn init -s https://svn.repo/app/ myrepo, предполагая, что в https://svn.repo/app/ репо содержит стандартные подкаталоги /trunk, branches и tags
  • Сделайте git svn fetch в myrepo до тех пор, пока не будет извлечено больше коммитов (может занять некоторое время, а иногда и прерываться под Windows).
  • Оформить заказ отдельной ветки или магистрали Subversion с помощью git checkout -b trunk remotes/trunk

Затем вы можете просто просмотреть, взломать и зафиксировать в своем реестре Git, содержащий все транзакции Subversion и ветки.

  • Для ввода новых коммитов из SVN используйте git svn rebase
  • Чтобы использовать локальные коммиты в SVN, используйте git svn dcommit

Чтобы перейти к конкретной ревизии Subversion, вам нужно всего лишь просмотреть историю через git log и выполнить поиск для фиксации соответствующей субординирующей фиксации. Вы можете легко определить версию Subversion в строке git-svn-id: сообщения фиксации. Просто используйте git checkout <commithash>, чтобы явно проверить эту версию.

Ответ 2

Хорошее начало:

Чтобы получить новую транзакцию svn в локальное репо: git svn rebase

Чтобы скопировать локальную фиксацию в SVN: git svn dcommit

Вам, вероятно, придется использовать git stash и git stash pop, прежде чем использовать две команды выше, когда ваша рабочая копия имеет неуправляемые изменения.