У меня есть папка, содержащая подкаталоги и файлы, которые я хочу объединить с репозиторием SVN. Как я могу это сделать? Обратите внимание, что файлы в папке, которую я хочу объединить, могут находиться в разных папках. Например, /folder/dir1/file.cpp
в папке может быть под /src/dir2/file.cpp
в хранилищеСлияние папки с репозиторием SVN
ответ
Я хотел бы сделать это следующим образом:
Заканчивать репозитории в рабочей копию. Затем переместите (замените!) Файлы, которые должны быть объединены с соответствующими файлами. Поскольку это не очевидно, вы должны делать это один за другим. Когда вы закончите, вы можете изменить svn diff
.
(Технически, это не слияние, но я не уверен, что если вы действительно хотели слияния :))
Выполнение этого приведет к тому, что я потеряю последние изменения, зафиксированные в репозиториях, которые произошли после того, как была выбрана «папка». – Iceman
Ах! Итак, это слияние в конце концов. Затем проверьте версию, из которой вы отбросили версию. Сделайте, как я сказал, затем сделайте 'svn up', тем самым получив все изменения с этого момента (икру) до сих пор. После этого 'svn diff' и/или' svn ci'. – cxxl
Да, это то, о чем я думал .. заменяя файлы, а затем делаю svn up – Iceman
Предисловие: Вы действительно должны прочитать SVN книгу!
Потому что из вашего описания проблемы не представляется возможным сделать однозначный вывод о начальном состоянии я опишу оба варианта
Начальная точка для обеих версий
У вас есть:
somefile of old version
patched somefile of old version
- обновленный
somefile of new version
Вы знаете пересмотр somefile of old version
Пусть старая версия будет R1
- такой пересмотр:
svn co [email protected]
в случае отсутствия WC,svn up -r R1
в случае наличия WC - Заменить в WC
somefile of old version
bypatched somefile of old version
- Получить другие изменения:
svn up
. Все изменения между R1 и HEAD, появившиеся вsomefile
, будут объединены вpatched somefile of old version
: автоматически, если конфликты не были обнаружены или с использованием инструмента слияния для ручного разрешения конфликтов (если настроен слияние), и в результате в WC появитсяpatched somefile of new version
не-поручены-локальный_файл изменения, которые вы должны совершить для того, чтобы сохранить
вы не знаете, пересмотр somefile of old version
- Использование ОС диф, генерировать патч от
somefile of old version
иpatched somefile of old version
- Получить
somefile of new version
(смsvn up
илиsvn co
) - Попробуйте применить патч от стр.1 к
somefile of new version
Спасибо за ответ. В сценарии (b), если у меня нет номера версии некоторого файла, как я могу использовать разницу ОС для создания патча из некоторого файла старой версии и исправленного некоторого файла старой версии? – Iceman
@Iceman: 'diff -u" некоторый файл старой версии "" patchched somefile старой версии "> file.patch' –
У меня не было бы« somefile старой версии », если я не знаю версию. – Iceman
Если решения, представленные в других ответах действительно не работают по каким-либо причинам, то вы можете дать этому попытку.Хотя это сложнее, я не вижу причины, почему это не должно работать:
- dump revisions 0 to в файл.
- dump переделывает в другой файл.
- создать новое репо и импортировать первый свалку.
- сделайте заказ этой новой головки репозитория, замените файлы и сделайте чек.
- импортировать изменения второго дампа в новое репо.
Таким образом вы добавляете дополнительную ревизию в середину репозитория. никогда не делал этого сам, но почему бы и нет? Просто убедитесь, что вы сохранили свое старое репо некоторое время ... вы никогда не знаете ...
- 1. Git - сравнение папки с репозиторием git той же папки
- 2. слияние локального репозитория с удаленным репозиторием
- 3. Синхронизация репозитория Git с репозиторием SVN
- 4. SVN синхронизировать несанкционированный проект с репозиторием
- 5. SVN слияние с датой прошедшего
- 6. SVN, слияние с андроидной студией
- 7. Слияние между ветвями SVN
- 8. SVN Удаленное слияние
- 9. SVN слияние или переключатель?
- 10. SVN - слияние не сливается
- 11. SVN обратное слияние?
- 12. SVN: слияние ветви
- 13. svn branch (удаленные папки .svn)
- 14. Автоматическое слияние svn-git?
- 15. Git Слияние некоторые папки
- 16. SVN Слияние только изменений изменений только
- 17. Простое слияние в svn с использованием git-svn
- 18. Как включить SVN и слияние
- 19. Отменить нежелательное слияние в SVN
- 20. Svn слияние ствола и веток
- 21. Разработка локально с удаленным репозиторием
- 22. SVN черепаху папки
- 23. Создание папки неуправляемой SVN
- 24. Обратное слияние и svn: mergeinfo
- 25. Папки связывания SVN
- 26. .svn папки и файлы
- 27. SVN Слияние изменений в один
- 28. Как слияние работает в SVN?
- 29. Удаление папки SVN
- 30. Слияние: Hg/Git vs. SVN
Непонятно, из вашего вопроса, что именно вы пытаетесь сделать. Что вы имеете в виду с «слиянием» точно? Добавление файлов? – arkascha
Нет .. слияние файлов; то есть, исправление репозиториев с исправлениями, содержащимися в «папке» – Iceman
Итак, в этом случае просто сделайте чек и замените файлы там исправленными версиями, которые у вас есть. Для svn это так же, как редактирование файлов. Точно так же. Когда это будет сделано, просто проверьте. – arkascha