Intereting Posts
Как я могу автоматически обновлять базы данных с помощью RedGate, TeamCity и SVN Как очистить git-историю? Что такое «git» способ проверить несколько репозиториев (в конкретных версиях) за один шаг? GIT управляет файлом, сохраняя diff? Ruby on Rails: Git Push to Heroku Какие конкретные функции / функциональные возможности мы получим, мы перейдем от TFS к GitHub? Нажать изменения в другую ветку в github git запрашивает имя пользователя даже для операции чтения (клон), хотя уже настроен глобально Есть ли способ узнать, как выглядел весь файл в конкретном коммите? Как отменить «Отменить», если не было совершено GitHub не фиксируется в календаре «Ваши взносы» git push origin не создает удаленную ветвь Git diff для того, что нового / изменено / удалено из моей текущей ветви не может загружать репо в код PuTTY фатальная ошибка – отключена: получен SSH2_MSG_CHANNEL_FAILURE для не существующего канала 258

Отслеживание изменений svn вверх по течению с помощью git-svn и github?

Как отслеживать изменения SVN вверх по Git-svn и github?

Я использовал git-svn для преобразования SVN-репо в git на github:

$ git svn clone -s http://svn.osqa.net/svnroot/osqa/ osqa $ cd osqa $ git remote add origin git@github.com:turian/osqa.git $ git push origin master 

Затем я сделал несколько изменений в моем реплинге git, совершил и нажал на github.

Теперь я на новой машине. Я хочу принять изменения SVN вверх, объединить их с моим реестром github и направить их на мой репозиторий github. В этой документации говорится: «Если вы когда-нибудь потеряете свою локальную копию, просто запустите импорт снова с теми же настройками, и вы получите еще один рабочий каталог со всем необходимым SVN metainfo».

Поэтому я сделал следующее. Но ни одна из команд не работает по желанию. Как отслеживать изменения SVN вверх по Git-svn и github? Что я делаю не так?

 $ git svn clone -s http://svn.osqa.net/svnroot/osqa/ osqa $ cd osqa $ git remote add origin git@github.com:turian/osqa.git $ git push origin master To git@github.com:turian/osqa.git ! [rejected] master -> master (non-fast forward) error: failed to push some refs to 'git@github.com:turian/osqa.git' $ git pull remote: Counting objects: 21, done. remote: Compressing objects: 100% (17/17), done. remote: Total 17 (delta 7), reused 9 (delta 0) Unpacking objects: 100% (17/17), done. From git@github.com:turian/osqa * [new branch] master -> origin/master From git@github.com:turian/osqa * [new tag] master -> master You asked me to pull without telling me which branch you want to merge with, and 'branch.master.merge' in your configuration file does not tell me either. Please name which branch you want to merge on the command line and try again (eg 'git pull <repository> <refspec>'). See git-pull(1) for details on the refspec. ... $ /usr//lib/git-core/git-svn rebase warning: refname 'master' is ambiguous. First, rewinding head to replay your work on top of it... Applying: Added forum/management/commands/dumpsettings.py error: Ref refs/heads/master is at 6acd747f95aef6d9bce37f86798a32c14e04b82e but expected a7109d94d813b20c230a029ecd67801e6067a452 fatal: Cannot lock the ref 'refs/heads/master'. Could not move back to refs/heads/master rebase refs/remotes/trunk: command returned error: 1 

Похоже, что, за исключением вашего rebase, все происходило так, как ожидалось, но с гораздо большим количеством слов, которые вы могли бы ожидать. Вот что я думаю сделать, чтобы создать / интегрировать бит на новую машину:

  1. Скопируйте репозиторий Svn. В идеале, я бы хотел начать с git repo, потому что он принадлежит вам, и он находится в известном состоянии, но я не знаю, как изначально извлекать контент из Svn, чем клонировать его. Мне нравится добавлять --prefix=svn/ при клонировании, чтобы все мои удаленные ветви из Svn были аннотированы как таковые.
  2. Добавьте свое происхождение (точно так же, как вы это сделали).
  3. Создайте локальную ветку для работы. git co -b local-branch svn/branchname . Теперь у вас есть хорошая локальная площадка для игры с вещами.
  4. Убедитесь, что вы находитесь в том локальном филиале, который вы только что создали (вы должны быть).
  5. Вытащите из Гитуба. Вы сделали это правильно, но неоднозначно. Чтобы устранить двусмысленность, будьте ясны: git pull origin master (вытащить из источника в главную ветку).
  6. Rebase от Svn, чтобы синхронизировать все. git svn rebase .

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