Я заметил, что такая функция существует для подрывной деятельности, и она работает очень хорошо. Мне было интересно, есть ли такая вещь для SourceGear Vault.Можно ли извлечь из/push в хранилище хранилища SourceGear Vault с помощью Mercurial?
ответ
Нет, боюсь, у нас есть только двухсторонние мосты для Subversion и Git. Я не слышал, чтобы кто-нибудь писал мост для SourceGear Vault.
Тем не менее, вы по-прежнему можете использовать Mercurial поверх другой системы. Это общий метод, который работает для всех систем управления версиями (VCS). Что вы делаете:
Оформить последнюю версию кода из вашей системы управления внешней версией. Инициализировать Mercurial репозиторий, добавьте все файлы, и сделать коммит:
# checkout foreign VCS
$ hg init
$ hg addremove
$ hg commit
Рабочая копия теперь одновременно Mercurial рабочую копию , а как рабочую копию для внешней системы. Вы будете заниматься разработкой Mercurial и периодически импортировать его в зарубежную систему, и вы будете периодически импортировать изменения из внешнего VCS в Mercurial.
Мы будем использовать ветку с именем default
для отслеживания истории внешней системы и названной ветви с именем hg
для отслеживания развития, которое мы делаем в Mercurial.
Примечание: Комментарий Антона ниже, что в хранилище будет отображаться слишком много файлов, если вы используете именованные ветви для разделения двух линий разработки - вместо этого используйте два клона, если это проблема для вас.
Сделает hg
ветви:
$ hg branch hg
$ hg commit -m "Started hg branch"
Теперь вы можете разработать что-то:
# work, work, work...
$ hg commit -m 'Fixed bug 42'
# work, hack, work...
$ hg commit -m 'Customers will love this feature!'
Как работать вместе, как это, default
ветвь начнет отклоняться от hg
ветви - - разница - это именно те изменения, которые еще не экспортированы в зарубежную систему. Вы можете увидеть различия с
$ hg diff default:hg
Чтобы реально экспортировать изменения, обновления в default
ветви сливаются hg
в него и зафиксировать изменения в вашей внешней системы:
$ hg update default
$ hg merge hg
$ hg commit -m 'Merge with hg'
# get list of renamed files:
$ hg status --added --copies --change . | grep -A 1 '^ '
# commit to foreign VCS
Вы можете обновить назад к hg
отрасли и продолжить работу с Mercurial
$ hg update hg
# work, work, wok...
Когда изменения сделаны другими в иностранных VCS, вас должны объединить их обратно в вашу ветку hg
. Вы сначала обновляетесь до ветки default
. Это гарантирует, что рабочая копия будет выглядеть так, как будет выглядеть иностранная VCS. Вы можете обновить рабочую копию - это делает Mercurial видеть изменения, которые вы фиксируете Mercurial:
$ hg update default
# update working copy using foreign VCS
$ hg addremove --similarity 90
$ hg commit -m 'Imported changes from foreign VCS'
hg addremove
шаг гарантирует, что Mercurial подхватывает любые переименовывает, которые имели место в иностранном VCS.Вам нужно будет поэкспериментировать с параметром подобия, чтобы найти подходящую вам настройку. Используйте hg status -C
, чтобы просмотреть запланированные переименования.
Теперь нужно объединить эти изменения обратно в hg
ветви, так что вы можете включить их в дальнейшем Mercurial на основе работы:
$ hg update hg
$ hg merge default
$ hg commit -m 'Merge with default'
Вы продолжаете работать, как это - всегда делает новое локальное развитие на ветвь hg
и всегда обновляйте ветвь default
перед использованием внешних команд VCS (обновление, фиксация и т. д.).
Я надеюсь, что это руководство поможет вам или кому-то еще! :-)
- 1. Недоступен ли SourceGear Vault?
- 2. Как отобразить файлы в SourceGear Vault
- 3. Можно ли разделить хранилище Mercurial?
- 4. Может ли одно хранилище Mercurial жить внутри другого хранилища Mercurial?
- 5. Как перейти от SourceGear Vault к TFS?
- 6. Как вы относитесь к SourceGear Vault?
- 7. Есть ли способ импортировать/экспортировать SourceGear Vault в Git
- 8. Можно ли читать из хранилища Mercurial с помощью PHP
- 9. Как изменить адрес сервера SourceGear Vault в visual studio 2010
- 10. SourceGear Vault: Как получить автоматический список извлеченных файлов?
- 11. Chef Vault - удаление элемента хранилища создает «пакет данных» # {VAULT} не является ошибкой хранилища
- 12. CruiseControl.NET сборка этикетка и SourceGear Vault Практик Связанный Вопрос
- 13. Может ли хранилища Mercurial быть вложенными?
- 14. Можно ли использовать хранилище браузера в качестве хранилища данных?
- 15. Извлечь часть хранилища git?
- 16. Можно ли проверить хранилище с помощью behat?
- 17. Может ли TFS Pending Changes отображать файлы, которые действительно изменены как SourceGear Vault?
- 18. Есть ли способ использовать MS Access 2003 с SourceGear Vault 4.1.4 для контроля источника?
- 19. Расширение Mercurial для личного хранилища
- 20. Mercurial распределенные хранилища
- 21. Вытягивание из хранилища Mercurial с использованием Git
- 22. Хранилище Хранилища
- 23. Как сохранить хранилище Mercurial?
- 24. Просмотр удаленных файлов в Vault
- 25. Конфигурация хранилища в хранилище
- 26. Mercurial - хранилища развернутых хранилищ и хранилища
- 27. Несколько проектов Eclipse в одном хранилище Mercurial
- 28. Mercurial: Можно ли переименовать ветку?
- 29. Можно ли загружать в локальное хранилище значение в твит?
- 30. Можно ли «развернуть» локальный клоун хранилища, просто скопировав весь каталог?
Благодарим вас за ответ. Думаю, мне придется найти другие способы убедить моих коллег попробовать меркуриальность (чтобы мы все могли убедить руководство, что нам не нравится Сейф). :/ – Paulius
Paulius: Я добавил руководство по использованию Mercurial гибридным способом поверх существующего VCS - надеюсь, вы сочтете это полезным. –
Да, хорошо выглядит. Меня беспокоит то, что мне придется вручную отслеживать все переименования, которые я буду делать на ветке hg, и импортировать их в чужие VCS. Даже не уверен, сможет ли Vault автоматически найти переименования. Во всяком случае, гид выглядит хорошо - я попробую. – Paulius