Найдите файл с заданным URL-адресом SVN в рабочей копии SVN

Учитывая начальную точку в рабочей копии Subversion (например, текущий рабочий каталог) и целевой URL-адрес SVN, я хотел бы найти файл в рабочей копии с этим URL-адресом SVN.

Например, учитывая этот текущий каталог:

c:\Subversion\ProjectA\a\b\c\

который имеет этот URL-адрес SVN:

https://svnserver/svn/ProjectA/trunk/a/b/c/

Я хотел бы найти файл на жестком диске с этим целевым URL-адресом SVN:

https://svnserver/svn/ProjectA/trunk/a/x/y/test.txt

который в этом примере будет:

c:\Subversion\ProjectA\a\x\y\test.txt

Во-первых, предоставляет ли SVN API функцию для этого? Во-вторых, если нет, то какой хороший надежный (кроссплатформенный) метод его реализации?

Python - мой целевой язык, и я использую pySvn, хотя альтернативой могут быть собственные привязки Python SVN.


person Craig McQueen    schedule 22.09.2009    source источник


Ответы (1)


Subversion не использует обратное отображение URL-адреса в расположение самой рабочей копии. Самый стабильный способ проверить использование URL-адреса - это выполнить рекурсивный вызов svn info для рабочей копии.

Это дает вам URL-адреса для всех файлов и каталогов, и вы можете выполнить сопоставление самостоятельно.

Вы можете немного оптимизировать это, пытаясь сопоставить URL-адреса с локальными путями и смотреть только на разумные местоположения, но вы пропустите другие местоположения, созданные с помощью svn switch.

Я не знаю, как svn info отображается в привязках python, но, скорее всего, в клиентском классе есть некоторая функция info2 (), которую вы можете использовать.

person Bert Huijben    schedule 22.09.2009