Перейдя с Subversion на Git, как мне изящно перейти на heroku?

StackOverflow https://stackoverflow.com/questions/1479880

  •  18-09-2019
  •  | 
  •  

Вопрос

Я использовал Subversion для своего управления версиями в сочетании с git ТОЛЬКО для развертывания (push) в heroku.Мой шаблон был:Обновите локальную рабочую копию с последней версии master в удаленном репозитории subversion.Затем выполните git commit и git push heroku (Git был настроен на игнорирование содержимого .svn).Эту рабочую копию я использовал только для отправки в heroku, у меня была другая папка subversion для выполнения живой разработки и фиксации в удаленном репозитории subversion для отслеживания.

Теперь я полностью переключился на git.Я выполнил полный импорт из subversion в новый удаленный репозиторий git.Я успешно работаю над своей локальной рабочей копией репозитория git (origin) и вношу изменения, когда мне это удобно (также сотрудничаю с одним другим разработчиком, но в основном я запускаю операцию).

МОЙ Вопрос:

Теперь я хотел бы вернуться к моей ДРУГОЙ рабочей копии git, которую я ранее использовал для отправки в heroku (в ней также есть .svn/ stuff).Я подумываю о том, чтобы просто добавить мой новый репозиторий git в качестве записи [origin] в .git/config ..извлекаю последние изменения с моего нового пульта git remote и нажимаю на heroku, но мне интересно, не взбесится ли это.

Он будет пытаться слиться и запутаться, не так ли?И, даже если вытягивание сработало, не запутается ли пульт heroku в толчке, исходящем из какого-нибудь нового репозитория git?

Я мог бы заблокировать (удалить) эту рабочую копию (используемую для отправки в heroku из subversion) и создать новый клон моего нового репозитория git, затем добавить heroku в .git / config.Но я обеспокоен тем, что нажатие на heroku все равно приведет к путанице, поскольку я использовал нажатие из другой рабочей копии.

Любой совет был бы замечательным!

Заранее спасибо!

Это было полезно?

Решение

Если я вас правильно понял, вы хотите вернуться к прежнему репозиторию SVN в качестве своей рабочей копии и хотите сохранить старую историю SVN?

Есть несколько доступных вариантов.

  1. Перенесите последние изменения из нового репозитория Git в Heroku, затем переключитесь на старый репозиторий и извлеките данные из Heroku.Это обновит ваш старый репозиторий.

  2. Временно измените URL-адрес в конфигурационном файле старого репозитория, чтобы он указывал на локальный путь к новому репозиторию.Извлеките оттуда последние изменения, а затем вернитесь обратно к URL-адресу Heroku, когда закончите.Это также обновит ваш старый репозиторий.

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

Редактировать: Чтобы ответить на ваши опасения по поводу того, будет ли Heroku заботиться о происхождении коммита, вкратце, нет, репозиторий на Heroku - это другой репозиторий git, который принимает коммиты от аутентифицированных пользователей.

Пока учетные данные верны, исходный репозиторий не имеет значения.Это прекрасная особенность DVCS - нет ни одного контролируемого или повреждаемого репозитория - теперь вы вполне можете клонировать Heroku на другой компьютер и продолжить работу оттуда.Пока ваши учетные данные совпадают, в истории будут отображаться все без исключения коммиты, которые вы отправляете, но не важно, откуда.

Если вы хотите просто использовать чистый репозиторий для работы, то новый будет вашим любимым.Старый файл может быть удален без каких-либо негативных последствий.

Чтобы доказать это - проверьте хэши SHA-1 на предмет фиксации как в новых, так и в старых репозиториях, и вы увидите, что они идентичны.Хэш уникален для всех коммитов и может использоваться для проверки целостности кода в любое время.Для любого заданного хэша никогда не будет более одного изменения.

  • В качестве дополнительного примечания, хранилище является портативным в том смысле, что оно полностью автономно и может свободно перемещаться по вашему дисковому пространству или даже использоваться на внешнем носителе, таком как флэш-накопитель USB.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top