сервер для правильной работы.

абочий процесс, который я сейчас использую для своих проектов svn (я никогда не использую ветви svn, и некоторые проекты также активно работают над другими людьми):

на сервере сделай начальныйgit svn fetch что может занять несколько часов. Также создайте ветку 'build'.на машине разработки клонирование теперь происходит быстро:git clone srv://project.git, git checkout build с последующимgit update-refs ..., git svn fetch восстановить ссылку на репозиторий svnработа, коммит, работа коммит, ...чтобы проверить, все ли в порядке,git push build на сервер и вызвать сборку в Гудзоне для этой ветвичтобы сохранить работу, чтобы я мог работать на ней с другой машины, также нажмите ветку buildкогда все выполнено, объедините коммиты вместе в логических шагах (например, по одному для каждой ошибки), зафиксируйте в svn и сбросьте все какgit checkout master, git merge build, git svn dcommit, git push, git checkout build, git rebase master, git push build

Введите SVN Externals. Я пробовал каждый скриптВот уже, но все они терпят неудачу. Мои внешние настройки настроены так:

/path/to/x x
/path/to/y/z y/z
/path/to/a/b.file a/b.file

и сценарии делают такие вещи, как пытаться создать/path/to/x в корне файловой системы иgit svn fetch /path/to/x, Также отдельные файлы, кажется, вызывают больше проблем. (подвопрос 1: для какого формата svn: externals были написаны эти сценарии?)

Кажется, нетрудно модифицировать один из сценариев, чтобы справиться с моей ситуацией и воспроизвести структуру каталогов, в которой я нуждаюсь, но у меня осталась серьезная проблема: если я изменил файл в x и y / z каталоги, я не вижу способа объединить это в один SVN-коммит, и это одна из причин, по которой я начал использовать git.

Отсюда вопрос: есть ли способ, которым я могу реплицировать вышеупомянутый рабочий процесс, используя только части определенного хранилища SVN, таким образом, чтобы я мог сделать SVN Dcommit в корне? Я бы предпочел готовое к использованию решение, которое работает как на Linux, так и на Windows.

редактировать Я быстро взломал один из найденных скриптов и сделал его копирующим структуру каталогов внешних SVN. Я не могу клонировать отдельные файлы, хотя, вот вывод:

git svn clone -r HEAD srv://svn/repo/path/to/projects.sln
Initialized empty Git repository in xxx/projects.sln/.git/
Invalid filesystem path syntax: REPORT request failed on '/svn/repo/!svn/vcc/default':
  Cannot replace a directory from within at yyy/git/libexec/git-core/git-svn line 5114

подвопрос 2: нельзя ли получить один файл через git svn?

 Ivan Koblik01 нояб. 2013 г., 15:14
я нашел этоэтот скрипт работает с текущими версиями SVN и Git.
 stijn01 нояб. 2013 г., 15:21
@IvanKoblik спасибо за публикацию этого. Хотя я должен признать, что я просто прекратил синхронизацию всех репозиториев и вместо этого заставил всех коллег просто использовать git: P
 Ivan Koblik01 нояб. 2013 г., 17:06
После использования на некоторое время, даже со сценарием, это очень громоздко. Я думаю, что git-svn не подходит для SVN-репозиториев с внешним интерфейсом, ваше решение - лучшее, что есть.

Ответы на вопрос(2)

Решение Вопроса

внешние возможности SVN довольно гибки. Я столкнулся с несколькими сценариями, которые обрабатывают их как <путь> <url>, но <url> <путь> также разрешен. Поэтому я думаю, что некоторые из сценариев просто сломаны в этом отношении.

Чтобы ответить на ваш второй вопрос: нет. 'git svn fetch' должен работать на поддереве репозитория Subversion, но это должно быть нечто, что он может рассматривать как ветвь. Единственное, что хорошо вписывается в эту парадигму - это каталог (например, trunk /). FWIW, Bazaar и Mercurial тоже страдают здесь. В конце концов, Subversion является просто версионной файловой системой, в то время как Git имеет первоклассную концепцию ветки. Это одно из тех несоответствий, которые мешают. :-(

Subversion на сегодняшний день также не поддерживает SVN Externals для файлов, только папки. Поэтому я думаю, что такие записи в свойствах будут недействительными. Не знаю, есть ли какой-либо инструмент, который обрабатывает этот случай.

 danyowdee08 мая 2014 г., 01:41
Будучи основным PITA (особенно при попытке соединить SVN с Git), внешние возможности файлов в SVN вполне возможны. С тех пор я не знаю, но каждый клиент командной строки SVN, который поставлялся с Xcode начиная с версии 4.5, делал - и это, как правило, довольно устарело.
 PMF04 нояб. 2014 г., 16:15
Внешние файлы IIRC требуют версии 1.8 или новее на обоих клиентаха также сервер для правильной работы.

Ваш ответ на вопрос