(черепаха) svn: переместить разные ветви в разные репозитории (= разные URL и UUID) - PullRequest
1 голос
/ 15 марта 2012

Я работаю над проектом, скажем, двух разных компаний A и B;А большой, а Б маленький (мой).Обе компании работают над одним и тем же проектом, но моя работает только над небольшим модулем из большого.Таким образом, у нас есть один репозиторий для дырочного проекта A, а другой - только для нескольких файлов, над которыми работает B.

Мне нужно проверить основной проект из репозитория A (главный ветвь), разработатьна небольшом подмножестве файлов (разработка ветки) и зафиксируйте их в хранилище B.Но теперь я столкнулся со следующей проблемой: я хочу разделить две ветви на разные места / репозитории с разными URL и UUID.(Как) я могу справиться с этим?

(Если это не сработает с svn / tortoise-svn, вместо этого сработает git-svn?)

Ответы [ 3 ]

1 голос
/ 16 марта 2012

Вендор Филиал и SVN: внешние

"Главная ветка" репо А добавлена ​​как "некоторая ветка" в дереве репо В. "ветка развивается", разработанная внутри дерева чистого репо B, готовая ветка снова связана с SVN: exnernals из репо A

0 голосов
/ 15 марта 2012

Самый простой способ - получить две рабочие копии A и B и вручную скопировать файлы из A в B.

Если компания A разрешит это, вы можете разветвить проект в репозитории A и импортировать эту ветвь в качестве внешнего репозитория в ваш проект B. Недостатком является то, что компания A будет иметь ваш исходный код в своем репозитории.

РЕДАКТИРОВАТЬ: один репозиторий может включать в себя папки из другого репозитория через свойство svn:external. Вы в основном заявляете в своем хранилище, что какая-то папка фактически будет полной рабочей копией другого хранилища. В вашем случае, что «какой-то другой репозиторий» на самом деле является веткой интересующего вас проекта. Когда вы добавляете свойство (с именем папки и URL-адресом ветви в другом репозитории), просто обновите рабочую копию, и Tortoise загрузит все файлы из другого хранилища. Недостатком является то, что вы должны отдельно зафиксировать этот другой проект и вашу рабочую копию (две отдельные операции фиксации).

0 голосов
/ 15 марта 2012

Ветвление и слияние в SVN работают только в одном и том же хранилище.Таким образом, нет способа достичь того, что вы хотите получить.

Однако, если вы укажете, чего хотите достичь, возможно, может быть решение:

  • Отделите разработкудля компаний A и B, чтобы не было перекрытия?
  • Работать над своим небольшим проектом (без этого когда-либо будет замечено в большом проекте), но делиться файлами?
  • ...

Если второй интересен, может сработать следующее:

  1. Оформить большой проект локально с помощью SVN.
  2. Создать там новый Gitрепозиторий.
  3. Клонируйте этот Git-репозиторий локально в отдельном месте.
  4. Работайте с этим отдельным репозиторием и отправляйте свои изменения, когда вы думаете, что должны доставить их в большой проект.
  5. Затем внесите изменения в вашу рабочую копию Subversion (которая одновременно является вашей рабочей копией репозитория Git) в большой проект.
...