2010-02-21 7 views
6

Przez przypadek nazwałem "import svn ..." w niewłaściwym katalogu. Czy istnieje rozsądny sposób na usunięcie tego błędu?Czy można cofnąć import w subwersji?

Googling Nie znalazłem żadnej przydatnej odpowiedzi, a najbliższy mojemu problemowi, który znalazłem na stackoverflow, było importing the correct data to the wrong place, natomiast zaimportowałem nieprawidłowe dane do właściwego miejsca.

Oraz: repozytorium NIE jest nowe, więc usunięcie go nie wchodzi w grę.

Byłby to rodzaj ironii, gdybym nie mógł cofnąć operacji w systemie kontroli wersji. Czy ktoś może mi pomóc? (Dzięki!)

EDYCJA: Mam moje repozytorium przechowywane w bazie danych Berkley, tj. Jest w systemie plików. Patrząc na datę modyfikacji wszystkich plików/katalogów i na zawartość właśnie zmodyfikowanych plików, byłem w stanie ustalić, co zrobić, z wyjątkiem jednego: czy ktoś wie, do czego służy txn-current? Domyślam się, że jest on podłączony do obsługi transakcji, ale jaki jest sens treści (długość wynosi 2 bajty)?

EDYCJA 2: Dziękujemy za pomocne odpowiedzi. Zaakceptowałem odpowiedź Martina, ponieważ powinna ona zapewnić właściwy sposób robienia tego (ponieważ jestem pod presją czasu, właśnie usunąłem niektóre pliki jako podpowiedź w moim pierwszym EDYCIE ignorując zawartość txn-current i grzywnę na żywo do tej pory). Ale sprawdź link Wima w swoim komentarzu!

Odpowiedz

10

Gdyby nie było żadnych innych zobowiązuje ponieważ importowane pliki, a następnie można łatwo usunąć ostatnią rewizję przy użyciu svn dump.

Poniższy przykład pochodzi z this page:

  • (przyjmując poprawki 1-125 są OK, 126 jest to, że ostatniego przeglądu, co powoduje problem)
  • wykonać kopię zapasową repozytorium, a następnie zrzucić repozytorium (z wyjątkiem ostatniej rewizji):
    • > svnadmin dump -r1:125 myrepo > my.dump
  • teraz utworzyć nowe repozytorium i załadować zrzut:
    • > svnadmin create myrepo
    • > svnadmin load myrepo < my.dump
11

nie można cofnąć zatwierdzenie bezpośrednio, jedynym rozwiązaniem jest to, aby zrobić svnadmin dump, usuń popełnić z wstępnym plikiem (zarówno ręcznie przy użyciu edytora tekstu lub przy użyciu svndumpfilter i svnadmin load go ponownie.

Jeśli nie jest to prawdziwy problem, że dane pozostaje gdzieś w repozytorium jako starszej wersji, po prostu svn delete może i popełnić coś innego w zamian.

+0

Dzięki, ale było kilka binarne w złym katalogu i chciałbym się ich pozbyć. Jak mogę usunąć dane za pomocą dump? –

+2

Starsza wersja książki SVN zawiera więcej informacji o korzystaniu z svndumpfilter: http://svnbook.red-bean.com/en/1.2/svn.reposadmin.maint.html#svn.reposadmin.maint.tk.svndumpfilter – Wim

+0

Bardzo przydatny link, jeszcze raz dziękuję! W tej chwili jestem na innej ścieżce (zobacz nadchodzącą edycję mojego pytania), ale jeśli to nie zadziała, spróbuję svndumpfilter. –