SVN pozostaje w konflikcie?


284

Jak mogę usunąć ten katalog z konfliktu? Nie obchodzi mnie, czy problem zostanie rozwiązany za pomocą „ich”, „moich” lub czegokolwiek…

PS C:\Users\Mark\Desktop\myproject> svn ci -m "gr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

PS C:\Users\Mark\Desktop\myproject> svn resolve --accept working C:\Users\Mark\Desktop\myproject\addons
Resolved conflicted state of 'C:\Users\Mark\Desktop\myproject\addons'

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grr"
svn: Commit failed (details follow):
svn: Commit item 'addons' has copy flag but an invalid revision

PS C:\Users\Mark\Desktop\myproject> svn update
   C addons
svn: Can't move 'addons\debug_toolbar\templates\debug_toolbar\.svn\tmp\entries' to 'addons\debug_toolbar\templates\debug
_toolbar\.svn\entries': The file or directory is corrupted and unreadable.

PS C:\Users\Mark\Desktop\myproject> svn cleanup

PS C:\Users\Mark\Desktop\myproject> svn update
Skipped 'addons'
At revision 51.
Summary of conflicts:
  Skipped paths: 1

PS C:\Users\Mark\Desktop\myproject> svn ci -m "grrr"
svn: Commit failed (details follow):
svn: Aborting commit: 'C:\Users\Mark\Desktop\myproject\addons' remains in conflict

93
odpowiedź brzmi: [svn resolved filename] zrób to zamiast zaakceptowanego rozwiązania.
Travis Schneeberger,

1
@TravisSchneeberger zaakceptowane rozwiązanie jest w porządku 😉
Hi-Angel,

svn resolved * nazwa pliku * nie naprawia tego dla mnie.
reinierpost

Odpowiedzi:


447

Wpisz następujące polecenie:

svn resolved <filename or directory that gives trouble>

(Podziękowania dla @Jeremy Leipzig za tę odpowiedź w komentarzu)


35
Poważnie, jeśli nie obchodzi cię jak to rozwiązać (może i tak po prostu to skasujesz), to jest właściwa odpowiedź.
invertedSpear

1
To niczego nie rozwiązuje. Błąd prawdopodobnie pojawi się ponownie przy następnym zatwierdzeniu.
Tadej,

Wielkie dzięki, to działa dla mnie! Musisz w swoim repozytorium svn root, możesz użyć tego polecenia!
GeekHades

276

Ok, jak to naprawić:

svn remove --force filename
svn resolve --accept=working  filename
svn commit

więcej szczegółów znajduje się na stronie: http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html


Jeśli pracujesz z Eclipse IDE, możesz również zastosować moje rozwiązanie „bez wiersza poleceń”, które opisałem w osobnej odpowiedzi poniżej.
Peter Wippermann

3
przy pomocy svn 1.7.4 pomoc svn rozwiązana stwierdza, że ​​„został on przestarzały na korzyść działania polecenia svn resolver - Accept working”.
wreckgar23,

35

Dla mnie tylko cofnij - opcja głębokość nieskończoności naprawiona katalog Svn pozostaje w konflikcie:

svn revert --depth infinity "<directory name>"
svn update "<directory name>"

1
przywrócić cały katalog plików lub plik już nie istnieje
biology.info

Aby rozwiązać konflikt lokalnie usuniętych plików, który istnieje na serwerze, ta opcja zadziałała.
Neo

1
Wielkie dzięki. „svn revert --depth infinity.” pracował dla mnie i przywracał usunięte pliki, które nie pojawiły się ponownie tylko z „svn up”
Rauli Rajande

16
  1. rozwiązanie svn
  2. czyszczenie SVN
  3. aktualizacja svn

.. te trzy polecenia svn CLI w tej sekwencji, gdy cd-ed do właściwego katalogu działało dla mnie.


@Elad Tabak: W moim przypadku musiałem to zrobić w katalogu nadrzędnym pliku, co sprawiało mi problemy, to może być to, na co wpadłeś
Jay Sullivan

11

Jeśli używasz środowiska Eclipse IDE i napotkasz ten błąd podczas zatwierdzania, oto rozwiązanie dla Ciebie. Korzystam z Subclipse, ale rozwiązanie dla Subversive może być podobne.

To, czego być może nie zauważyłeś, to dodatkowy symbol w pliku będącym w konflikcie, co oznacza, że ​​plik rzeczywiście jest „skonfliktowany”.

Kliknij plik prawym przyciskiem myszy, wybierz „Zespół” i „Edytuj konflikty ...”. Wybierz odpowiednią akcję. Plik był wcześniej scalany ręcznie na poziomie tekstowym, więc wybrałem pierwszą opcję, która przyjmie bieżący stan twojej lokalnej kopii jako „rozwiązane rozwiązanie”. Teraz wciśnij „OK” i to wszystko.

Konflikt symbolu powinien zniknąć i powinieneś być w stanie ponownie go zatwierdzić.


2
Ponadto w przypadku konfliktu katalogów możesz wykonać „Zespół-> Pokaż konflikty drzew”, a następnie przejrzeć wszystkie te konflikty i oznaczyć je jako rozwiązane (w osobnym oknie „Konflikty drzew SVN”)
altumano

6

Jeszcze jedno rozwiązanie poniżej,

Jeśli cały folder zostanie usunięty, a SVN zgłasza błąd „brakuje pliku administracyjnego .svn”, następujące rozwiązania zostaną wykorzystane do rozwiązania konfliktu do stanu roboczego.

svn resolve --accept working "file / directory name "

3

Instrukcje dla Tortoise SVN

Przejdź do katalogu, w którym pojawia się ten błąd. Jeśli nie masz żadnych zmian, wykonaj następujące czynności

za. Kliknij prawym przyciskiem myszy i wykonaj „Cofnij”
b. Wybierz wszystkie pliki
c. Następnie ponownie zaktualizuj katalog


3

Używam następującego polecenia, aby usunąć konflikt za pomocą wiersza polecenia

svn revert "location of conflict folder" -R
svn cleanup
svn update

do przywracania bieżącego katalogu

svn revert . -R

Hahahaha, nie, nie rób tego. Zrobi złe rzeczy.
Sowa,

To oczywiście
cofnęłoby

w rzeczywistości działa w przypadku niektórych problemów, takich jak konflikt i można go rozwiązać tylko za pomocą cli
zero8

2

Jeśli masz problemy z rozwiązaniem (jak ja) i nie możesz usunąć i zaktualizować zasobów, ponieważ dokonałeś na nich wielu zmian, a ponadto używasz wywrotowego eclipse zamiast klienta natywnego, wykonaj następujące kroki:

  1. zrób kopię całego projektu w reż
  2. wykonaj team> rozłącz w obrębie zaćmienia i wybierz usunięcie metadanych svn
  3. następnie wybierz zespół> udostępnij projekt i wskaż ten sam folder, w którym znajduje się Twój projekt
  4. wybierz tak i zatwierdź wszystko (możesz chcieć wykluczyć niektóre bardzo lokalne zasoby, takie jak pliki konfiguracyjne)
  5. jeśli usunąłeś lub przeniosłeś niektóre zasoby przed pierwszą próbą zatwierdzenia, usuń te stare zasoby (powinny się podwoić, jeden w starej lokalizacji, jeden w nowym) i zatwierdzić te usunięcia.

Jesteś skończony.


2

Myślę, że właściwym rozwiązaniem jest:

(1) backup your-file/your-directory
(2) svn revert your-file/your-directory
(3) svn update your-file/your-directory
(4) Merge the backup your-file/your-directory to the updated one.
(5) svn ci -m "My work here is done"

0

Miałem podobny problem, w ten sposób został rozwiązany

xyz @ ip: ~ / formProject_SVN $ svn rozwiązany formularzeProj / templates / search

Rozwiązany stan konfliktu „formProj / templates / search”

Teraz zaktualizuj swój projekt

xyz @ ip: ~ / formProject_SVN $ svn aktualizacja

Aktualizacja „.”:

Wybierz: (mc) zachowaj wpływ lokalne ruchy, (r) znak rozwiązany (przerywa ruchy), (p) odłóż, (q) wyjdź z rozwiązania, (h) pomoc: r (wybierz opcję „r”, aby rozwiązać)

Rozwiązany stan konfliktu „formProj / templates / search”

Podsumowanie konfliktów: Konflikty drzew: pozostało 0 (i 1 już rozwiązanych)


0

Miałem ten sam problem z linuksem, ale nie mogłem go naprawić z zaakceptowaną odpowiedzią. Udało mi się to rozwiązać, cdprzechodząc do właściwego folderu, a następnie wykonując:

svn remove --force filename  
syn resolve --accept=working filename  
svn up

To wszystko.


W drugim wierszu tak svnnie jestsyn
Diego Romero Rodriguez
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.