2011-02-01 14 views
24

Czy istnieje sposób, aby obniżyć wersję roboczą subversion z wersji 1.7 do wersji 1.6x?Jak obniżyć wersję drzewa subversion z wersji 1.7 do wersji 1.6?

Wersja 1.7 używa pojedynczego folderu .svn i sqlite dla metadanych, więc skrypt python konwersji z tigris.org nie działa.

Czy znasz rozwiązanie, które nie wymaga wykonania czystego zamówienia w wersji 1.6 i skopiowania zmodyfikowanych plików?

+0

Czy 1.7 zostało jeszcze wydane? Który klient go wspiera? – eckes

+0

Wersje beta systemu Windows są dostępne na stronie nocnej kompilacji TortoiseSVN pod adresem http://nightlybuilds.tortoisesvn.net/latest/ – ccpizza

Odpowiedz

18

Istnieje script do wykonywania obniżek kopii roboczych.

Nie obsługuje to jednak zmiany wersji z formatu 1.7 na format 1.6, ani też nie będzie tego wspierać w przyszłości. Komentarze w skrypcie nam powiedzieć, dlaczego jest to niemożliwe:

# Downgrading from format 11 (1.7-dev) to format 10 is not possible, 
    # because 11 does not use has-props and cachable-props (but 10 does). 
    # Naively downgrading in that situation causes properties to disappear 
    # from the wc. 
+0

Przepraszamy za 1 głos. Ale w jaki sposób może to być ważna odpowiedź? – fishbone

+2

@fishbone: Zakładam, że masz na myśli, że jedna z pozostałych odpowiedzi powinna zostać przegłosowana powyżej tej. Zauważ, że te odpowiedzi w rzeczywistości nie zachowują stanu twojej kopii roboczej. Aby podać jeden przykład, jeśli zrobiłeś "svn mv foo bar", to po downgrade zobaczysz, że foo "brakuje", a pasek jest "unversioned". Niezatwierdzone modyfikacje właściwości SVN zostaną całkowicie utracone. Tak więc IMO "nie można tego zrobić" jest wciąż poprawną odpowiedzią. –

+1

Przepraszam, moja wina, muszę usunąć skargę. Brzmiało to jak "Jak mogę obniżyć wersję 1.7 do 1.6" - "Znam skrypt, który dokładnie nie może tego zrobić": D. Źle zrozumiałem komentarze skryptu, które są rzeczywistym punktem Twojej odpowiedzi. Edycja: nie mogę usunąć głosowania, dopóki ta odpowiedź nie zostanie zmieniona :( – fishbone

5

Moja brudna rozwiązaniem było stworzenie czystego kasę przy użyciu v1.6 i skopiuj tylko .svn foldery do istniejącej kopii roboczej przy użyciu małego skryptu bash:

#!/usr/bin/env bash 
    target=/projects/working-copy-dir 

    svn_dirs=`find . -type d -iname .svn` 

    for svn_dir in $svn_dirs; do 
     tosvn_dir=$target${svn_dir/\.\//} # strip the extra './' path component 
     cp -r $svn_dir $tosvn_dir 
    done 

Zakłada się, że skrypt jest uruchamiany z czystego kasy reż. Target to zmodyfikowana kopia robocza. Górny poziom v1.7 .svn powinien zostać usunięty/zmieniony przed uruchomieniem skryptu.

ps. Na razie nie zamierzam nazywać tego odpowiedzią, ponieważ powyższe rozwiązanie stanowi obejście tego problemu i faktycznie nie przekształca projektu z 1,7 na 1,6. Pytanie pozostaje otwarte.

14

Znalazłem najlepszy sposób, aby usunąć folder .svn z 1.7 egzemplarza roboczego, a następnie sprawdzić 1.6 na wierzchu. To zadziałało dla mnie, to może działać również dla ciebie. (Przy użyciu TortoiseSVN klienta 1.6.x)

+0

To działało całkiem dobrze, mogłem zachować zmiany, które wprowadziłem lokalnie Niektóre dodatkowe pliki pojawiły się zmodyfikowane, ale udało mi się je odwrócić – Speck

+0

Mój powód do konieczności downgrade jest tak, że mogę skopiować 30GB kasy ze stacji roboczej z 1.7 do stacji roboczej z 1.6 (od Ubuntu 12.10 do 12.04) .Nie próbowałem tego, ale brzmi to jak bardzo prawdopodobne rozwiązanie.Dzięki! –

2

(zakładając, że pliki na serwerze są poprawne) Najlepszy sposób znalazłem do tej pory:

  1. zamknąć IDE
  2. usuwać pliki lokalne
  3. usuń svn 1,7
  4. zainstalować svn 1,6
  5. pliki kasowe
+1

Zrobiłbym to również ale pytanie dotyczyło tego, jak tego uniknąć. –

0

W tym podejściu używa menedżera pakietów synaptic, więc upewnij się, że jest zainstalowany.

  1. poniższą linię do /etc/apt/sources.list:

    deb http://us.archive.ubuntu.com/ubuntu precise main 
    

    To zapewni masz co najmniej dwie wersje do wyboru z, tj 1,7 i 1,6.

  2. Run

    sudo apt-get update 
    
  3. Przejdź do menedżera pakietów, wyszukiwać subversion i wybierz ją.

  4. Z menu wybierz pakiet ->siły wersja wybrać 1,6 lub prawym przyciskiem ->właściwości -> wybierz wersja 1.6.

  5. zainstalować pakiet

  6. Wybierz pakiet ponownie, a następnie menu ->blokady wersji.

    Ma to zapobiec automatycznym aktualizacjom wyższych wersji.

To jest to. Powodzenia.

Powiązane problemy