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

Таинственное поведение git

С тех пор я исправил эту проблему. Но я до сих пор не знаю, почему я работал.

У нас есть репозиторий svn для нашего кода на работе. У меня есть локальный репозиторий git -svn, потому что я < 3 Git.:) Мы используем Windows, поэтому я использую Cygwin. Я думаю, что последняя версия в Cygwin Git 1.7.0.4. В пятницу я без проблем пропустил свой код, пошел домой. В понедельник утром я вернулся и попытался "git svn rebase", потому что кто-то совершил код за выходные (overachievers).

Это началось нормально, а затем внезапно решило, что не может найти багажник. К сожалению, я потерял точное сообщение об ошибке, но он орал не о том, чтобы найти /refs/remotes/trunk... и я был очень напуган. К счастью, у меня не было незафиксированного кода. Нечего терять. Тем не менее, каждый раз, когда я пытался "git svn rebase" после этого, он зависал бы для EVER, а затем я получил бы следующую ошибку:

Невозможно определить информацию SVN вверх по истории работы дерева

Я исследовал его целый день. Я попытался изменить svn-remote url из https://xxx.xxx.xxx/xxx/xxx в https://xxx.xxx.xxx/xxx/xxx / столь же смешно, как кажется. Затем я сделал "git svn fetch" ​​... и он повторно взял весь туловище (все 1682 коммиты). Но перестановка все равно не сработает. Поэтому я отказался от этого дня и решил, что на следующий день я просто создам новый репозиторий и начну (что займет целый день). Сегодня утром я пошел задавать вопрос, прежде чем я невольно удалил свой репозиторий. Я наткнулся на это:

git -svn rebase ушла ужасно неправильно

что было не совсем моей проблемой, но я решил попробовать "git reset --hard trunk", потому что это то, что я хотел. И это сработало. Теперь все в порядке.

Однако.

Почему это произошло в первую очередь? Насколько я знаю, я ничего не менял, поскольку в выходные не работал. Что это за ошибка? Я предполагаю, что я рассеянно сделал что-то ужасное, но мне нужно знать, что я не делаю этого снова.:)

Спасибо заранее.

4b9b3361

Ответ 1

Эта ошибка:

Unable to determine upstream SVN information from working tree history

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

Изменив URL-адрес, я думаю, что все коммиты имеют СЛУЧАЙНЫЕ разные сообщения о фиксации и, следовательно, разные хэши sha1, и поэтому ваши старые предки не соответствуют новым, что приводит к сбою переадресации.

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