Решение для обновления Ankhsvn в VS2013 также извлекает все одноуровневые папки, не связанные с проектом VS

Я наблюдаю какое-то неожиданное поведение в Ankhsvn, и мне интересно, возможно ли это ошибка или это по дизайну, и я что-то неправильно понимаю.

Я использую онлайн-репозиторий Subversion, и у меня есть несколько репозиториев, настроенных с такой файловой структурой:

"Browser URL": https://www.zzzzz.com/code/mememe/subversion-2/nodes/HEAD/trunk  
"Checkout URL": https://subversion.zzzzz.com/svn/abc.MyMiscProjects/

SqlScripts1 
SqlScripts2 
SomeOtherStuff1
SomeOtherStuff2
VS2013_Solution1
VS2013_Solution2

До сих пор я без проблем использовал все эти разные папки репозитория svn с разными локальными домашними папками (используя TortoiseSVN).

У меня также установлен плагин AnkhSVN в VisualStudio, но я использовал его в основном с другими репозиториями SVN (у того же онлайн-провайдера).

Вчера из VS2013 я создал VS2013_Solution2, и когда он спросил, хочу ли я добавить его в систему управления версиями Subversion, я ответил утвердительно. Я проверил все свои файлы, но затем, когда я пошел на свой домашний компьютер и из Visual Studio сделал «Файл, открыть проект Subversion» и выбрал файл .sln в / VS2013_Solution2, он не только получил выбранное решение, < em>, но также и любую другую родственную папку в этом репозитории, даже если они не связаны с решением.

Точно так же, когда сегодня утром на работе я выполнял «Обновить решение до последней версии» в VS2013, он также вытащил все папки из этого репозитория как родственные папки в VS2013_Solution2 в локальной папке.

Теперь, если бы это было просто ожидаемым поведением svn по умолчанию в целом, я бы ожидал, что то же самое произойдет, когда я щелкну правой кнопкой мыши мою локальную папку VS2013_Solution2 в проводнике Windows и выберу TortoiseSVN «Обновление SVN», но в этом случае это только обновляет отдельную папку.

Есть ли здесь какой-то момент, который мне не хватает в поведении Ankhsvn по отношению ко всем файлам в отдельном репозитории SVN? Является ли он принципиально неспособным работать с подмножеством (отдельной подпапкой) репозитория, как TortoiseSVN, кажется, может делать?


person tbone    schedule 08.07.2015    source источник


Ответы (1)


После еще нескольких поисков в Google ....
В VS2013, File, Subversion, Change Source Control, я вижу:

Repository: https://subversion.zzzzz.com/svn/abc.MyMiscProjects/    
SCC Binding:  ^/trunk/  
SCC Binding URL: https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk

Рядом с полем «Путь привязки SCC» есть кнопка «...», которая показывает корневой каталог решения как:

"https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk"  
...but in the dropdown I am also able to choose:  
"https://subversion.zzzzz.com/svn/abc.MyMiscProjects/trunk/VS2013_Solution2"  

(Интересно, что никакие другие папки не отображаются.) Итак, в моем случае выбор пути, указывающего непосредственно на папку моего проекта, устранил нежелательное поведение.

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

Вероятно, наиболее практичный подход: используйте одну локальную корневую папку на вашем жестком диске для каждого отдельного репозитория Subversion - не пытайтесь управлять отдельными папками в одном репозитории в разных локальных папках, и если вам действительно нужно иметь возможность проверить только одна отдельная папка, вероятно, есть очень конкретный порядок действий для этого (если вы делаете это из Visual Studio, в отличие, например, от TortoiseSVN).

person tbone    schedule 08.07.2015