Kopia robocza aktualizacji SVN

133

Nie mogę wykonać zatwierdzenia SVN. Otrzymuję ten błąd:

org.apache.subversion.javahl.ClientException: The working copy needs to be upgraded
svn: Working copy 'C:\.... is too old (format 10, created by Subversion 1.6)

Jak to naprawić?

user810430
źródło

Odpowiedzi:

154

Musisz zaktualizować swojego klienta subversion do co najmniej 1.7.

Korzystając z klienta wiersza poleceń, musisz ręcznie zaktualizować format kopii roboczej, wydając polecenie svn upgrade:

Uaktualnianie kopii roboczej

Subversion 1.7 wprowadza istotne zmiany w formacie kopii roboczej. W poprzednich wydaniach Subversion, Subversion automatycznie aktualizował kopię roboczą do nowego formatu, gdy wykonywana była operacja zapisu. Jednak Subversion 1.7 uczyni to krokiem ręcznym. Przed użyciem Subversion 1.7 z kopiami roboczymi, użytkownicy będą musieli uruchomić nowe polecenie, svn upgradeaby zaktualizować metadane do nowego formatu. To polecenie może chwilę potrwać, a dla niektórych użytkowników bardziej praktyczne może być po prostu pobranie nowej kopii roboczej.
- Uwagi do wydania Subversion 1.7

TortoiseSVN dokona aktualizacji kopii roboczej przy następnej operacji zapisu:

Uaktualnianie kopii roboczej

Subversion 1.7 wprowadza istotne zmiany w formacie kopii roboczej. W poprzednich wersjach Subversion automatycznie aktualizował kopię roboczą do nowego formatu po wykonaniu operacji zapisu. Jednak Subversion 1.7 uczyni to krokiem ręcznym.

Zanim będzie można użyć istniejącej kopii roboczej z TortoiseSVN 1.7, musicie najpierw zaktualizować format. Jeśli klikniesz prawym przyciskiem myszy starą kopię roboczą, TortoiseSVN pokaże tylko jedno polecenie w menu kontekstowym: Uaktualnij kopię roboczą.
- Uwagi do wydania TortoiseSVN 1.7

knittl
źródło
2
Kiedy svn upgrade
wydaję
@geneorama: czy masz svnzainstalowany? ( sudo apt-get install svn)
knittl Sierpnia
5
Dziękuję za odpowiedź! Miałem zainstalowany svn (subversion), ale była to wersja 1.6, która nie ma upgradepolecenia. Ubuntu 12.04 nie zainstalowałoby 1.7 bez dodania nowego ppa. askubuntu.com/questions/65468/…
geneorama
@genorama Oto instrukcje aktualizacji svn dla Mac OS, które będą działać, jeśli zaczniesz od 1.6 redfinsolutions.com/blog/update-subversion-mac-os-x . W przypadku Linuksa wyobrażam sobie, że jest podobnie.
Mike Eng
1
„To polecenie może chwilę potrwać, a dla niektórych użytkowników bardziej praktyczne może być po prostu pobranie nowej kopii roboczej”. Wykonuję polecenie, nie wiedząc, czego się spodziewać, po 2 sekundach konsola odpowiada „upgrade”. : P
rabidmachine9
57

z eclipse, możesz wybrać w projekcie, kliknij prawym przyciskiem myszy-> zespół-> uaktualnij

Richard Hsu
źródło
Nie można znaleźć opcji ulepszenia
Amit Thaper
6

W systemie MacOS:

  1. Pobierz najnowsze skompilowane pliki binarne klienta SVN stąd .
  2. Zainstalować.
  3. Dodaj pliki binarne do ścieżki (ostatni ekran instalacji wyjaśnia, jak to zrobić).
  4. Otwórz terminal i uruchom następujące polecenie w katalogu swojego projektu:

    aktualizacja svn

Vaiden
źródło
3

Jeśli właśnie zaktualizowałeś do SVN 1.7 na swoim komputerze (tak jak właśnie zrobiłem) i masz wiele projektów w obszarze roboczym Eclipse, które wymagają aktualizacji, możesz wykonać następujące czynności w oknie terminala w systemach Unix-baesd:

cd [eclipse/workspace] # <- you supply the actual path here

for file in `find . -depth 2 -name "*.svn"`; do svn upgrade `dirname $file` ; done;

Po trochę googlowaniu znalazłem coś, co wydaje się być odpowiednikiem dla użytkowników systemu Windows:

http://www.rqna.net/qna/mnrmqn-how-to-find-all-svn-working-copies-on-win-xp.html

Zobacz odpowiedź Alexeya Shcherbaka w połowie strony.

pfurbacher
źródło
2

Ten problem jest spowodowany tym, że próbujesz skompilować projekt, który ma pliki starszego SVN niż obecnie używasz.

Masz dwa sposoby rozwiązania tego problemu

  1. aby zainstalować wersję 1.6 SVN, aby była kompatybilna z plikami SVN projektu
  2. spróbuj zaktualizować projekt ... (nie zawsze działa).
AmrAngry
źródło
2

Możesz również otrzymywać dziwne komunikaty o potrzebie uaktualnienia kopii roboczej, gdy inne kopie robocze są zagnieżdżone w twojej. Miałem ten problem z projektem Symphony, ponieważ niektóre foldery frameworka są kopią roboczą i przypuszczam, że nie zostały poprawnie wyczyszczone przed opublikowaniem.

W takim przypadku po prostu wyszukaj pliki .svni usuń .svnfoldery, których nie chcesz (oczywiście nie usuwaj swoich w katalogu głównym).

youen
źródło
1

Po uaktualnieniu do najnowszej wersji Tortoise-SVN musiałem najpierw wykonać „Upgrade” (w przeciwieństwie do „Update”!).

Thorsten Dittmar
źródło
1

Jeśli otrzymujesz ten błąd z Netbeans (7.2+), oznacza to, że twoja oddzielnie zainstalowana wersja Subversion jest wyższa niż wersja w netbeans. W moim przypadku Netbeans (v7.3.1) miał SVN v1.7 i właśnie zaktualizowałem mój SVN do v1.8.

Jeśli zajrzysz Tools > Options > Miscellaneous (tab) > Versioning (tab) > Subversion (pane), ustaw Preferowany klient = CLI , a następnie możesz ustawić ścieżkę do zainstalowanego SVN, który dla mnie był C:\Program Files\TortoiseSVN\bin.

Więcej można znaleźć w często zadawanych pytaniach dotyczących klientów Subversion Netbeans .

icc97
źródło
1

W przypadku AnkhSVN w programie Visual Studio dostępna jest również opcja „Uaktualnij kopię roboczą” w menu kontekstowym rozwiązania w Eksploratorze rozwiązań (jeśli ma to zastosowanie).

Andre Luus
źródło
0

Możesz zaktualizować do Subversion 1.7. Aby zaktualizować do Subversion 1.7, musisz uruchomić istniejący projekt w Xcode 5 lub nowszym. Spowoduje to wyświetlenie ostrzeżenia ' The working copy ProjectName should be upgraded to Subversion 1.7' (pokazane na poniższym zrzucie ekranu).

Zrzut ekranu ostrzeżenia

Powinieneś wybrać 'Upgrade przycisk ', aby zaktualizować do Subversion 1.7. To zajmie trochę czasu.

Jeśli używasz terminala , możesz zaktualizować do Subversion 1.7, uruchamiając poniższe polecenie w katalogu swojego projektu: svn upgrade

Zauważ, że gdy już masz upgraded to Subversion 1.7 you cannot go back to Subversion 1.6.

Więcej informacji można znaleźć w dokumentacji Apple.

Jayprakash Dubey
źródło