svn przywrócić pojedynczą właściwość w katalogu?

6

Jak mogę przywrócić jedną z kilku właściwości katalogu z wiersza polecenia svn?

Mój svn trunk ma właściwość svn: externals do importowania zewnętrznego repozytorium.

/trunk
  svn:external = /external/trunk

Kiedy konfiguruję nową gałąź foo, zewnętrzna zmienia się tak, aby wskazywała również gałąź:

/branches/foo
  svn:external = /external/branches/foo

Czasami, gdy scalam gałąź z powrotem do pnia, ta właściwość jest kopiowana i kończę:

/trunk
  svn:external = /external/branches/foo

Normalnie mógłbym uruchomić, svn revert . --depth=emptyaby cofnąć scalanie właściwości, ale istnieją też inne właściwości w katalogu, które również zostałyby przywrócone svn:mergeinfo. Z mojego klienta GUI mogę dość łatwo przywracać poszczególne właściwości, ale nie zawsze to pamiętam. Czy istnieje sposób, aby zrobić to samo bezpośrednio z linii svn cmd, czy też muszę napisać jakieś szalone opakowanie, svn propgetaby uzyskać i cofnąć różnicę?

Wir
źródło

Odpowiedzi:

9

svn propset svn:externals "$(svn propget svn:externals . -r HEAD)" .

ustawia to właściwość na wartość HEAD. Jest to poprawne obejście, ponieważ revertmoże być zastosowane tylko do wszystkich właściwości i nie istnieje dla poszczególnych właściwości.

David
źródło
0

Dla mojej przyszłej referencji bardziej niż dla ciebie, ponieważ prawdopodobnie masz odpowiedź ...

svn propget PROPNAMETOREVERT `svn info | perl -ne 'print if s/URL: (.*)/\1/'` | perl -ne 'chomp; print' | svn propset PROPNAMETOREVERT  -F - .

Pracowałem dla mnie (dla właściwości jednej linii, może wymagać modyfikacji dla jednej z wieloma liniami).

Co może oczywiście zrobić ze skryptem :-)

George Lund
źródło