Podczas gdy w jakiś sposób zorientowany w VCS (zwykły użytkownik svn, git i git-svn) nie mogę oblewać głowy tym dziwnym zachowaniem SVN.Sprytny sposób na zmianę nazwy katalogu w kopii roboczej subversion
Ilekroć trzeba zmienić nazwę katalogu w moim SVN kopii roboczej z inaczej „czystej” państwa - tj svn status
nic nie zwraca, a wszystkie inne modyfikacje zostały popełnione - jak więc (co jest, co sugeruje, że doc SVN):
svn mv foo bar
svn commit
SVN narzeka głośno:
Adding bar
Adding bar/toto
Deleting foo
svn: Commit failed (details follow):
svn: Item '/test/foo' is out of date
Jak chcesz:
svn update
Co daje:
C foo
At revision 46.
Summary of conflicts:
Tree conflicts: 1
Istnieje konflikt drzewo, natomiast bez zmian przez stronę trzecią stało. Oczywiście, jedynym sposobem, aby wyjść z tego konfliktu drzewo bałagan jest rodzajowo (od svn czerwonej książce):
svn resolve --accept working -R .
svn commit
Zmiana nazwy to zdalnie na repo następnie zaktualizowaniu kopię roboczą wydaje się dość braindead:
url=$(svn info | grep -e '^URL:' | sed 's/^URL: //') svn mv $url/foo $url/bar
svn update
Czy istnieje usankcjonowany, bardziej usprawniony sposób zmiany nazwy folderu, którego mi brakuje? Jaka jest główna przyczyna tego szczególnie zaskakującego stanu konfliktu drzew?
Czy możesz umieścić wiadomość o konflikcie drzewa? –
Te zachowania widziałem również wcześniej, ale nie jestem pewien, co to powoduje. Czy jest to możliwe po dodaniu katalogu i zmianie jego nazwy? –
Ja również doświadczam tego zachowania i nie jestem w stanie znaleźć przyczyny. Zawsze zapisywałem to na "sposób, w jaki działa SVN". Doprowadza mnie to do szału. –