Почему клон git-svn устанавливает 'master' в случайную ветвь? - PullRequest
2 голосов
/ 19 ноября 2010

Я пытаюсь переместить наш существующий svn-репозиторий в git.Нам не нужно выполнять какую-либо синхронизацию между ними (поэтому нет git svn fetch es или dcommit s) - мы просто переходим и все.

Я ввел эту команду, чтобы создатьGit репозиторий:

git svn clone -s https://server/repos/my_repo

Все прошло нормально.Однако, когда я cd перешел в новый каталог my_repo, файлы, которые были там, были частью одной из ветвей (а не ствола).

Выполнение git branches -a приводит к:

* master
  modelExperimentalTrunk
  modelExperimentalTrunk@719
  dRefactoring
  reorganise
  stableV396
  tags/v1.0
  trunk

Я нахожусь в основной ветке, но файлы, которые находятся в моей песочнице, на самом деле из ветки dRefactoring (одна из наших более неясных ветвей).

Вопросы:

  • Почему ветвь master не была подключена к trunk?
  • Есть ли способ повторно подключить его к trunk?Или это можно сделать на этапе git svn clone?
  • Кроме того, учитывая, что это будет на сервере, есть ли способ git svn создать репозиторий --bare?

1 Ответ

7 голосов
/ 19 ноября 2010

Повторное подключение главной ветви к стволу очень просто, просто запустите:

git checkout master
git reset --hard trunk

Это переключится на основную ветвь (если это еще не так) и сбросит ее и рабочее дерево в состояние транка.ветка.После этого вы можете безопасно удалить ветку ствола.

git-svn не поддерживает стандартные репозитории из коробки.Прочитайте http://gsocblog.jsharpe.net/archives/12 для более подробной информации.Но я не думаю, что вам нужно это сложное решение, поскольку вы просто хотите выполнить один импорт вашего SVN-репозитория.

Поэтому вы можете просто создать чистый клон вашего уже существующего git-репозитория, и выустановлен.

...