Tu jest mój scenariusz:SVN jak rozwiązać "lokalny dodatek, przychodzące dodawanie po aktualizacji" w folderze * *?
Załóżmy mamy repo SVN o następującej treści: myfolder myfolder \ plik.txt
Teraz tworzę dwóch kas tego repo, CO1 i CO2.
W co1 modyfikujemy plik.txt. CO2 my:
- svn delete myfolder
- svn commit
- Utwórz nowy folder o nazwie myfolder
- svn dodać myfolder
- svn commit
Teraz, gdy próbuję update in co1 Występuje konflikt drzewa:
A + C myfolder > local edit, incoming delete upon update
M + myfolder\file.txt
chcę zachować MójFolder i zmodyfikowany plik, więc rozwiązać konflikt drzewa:
svn resolve --accept working folder
Teraz gdy próbuję popełnić, otrzymuję „svn: katalog«/ myfolder»jest nieaktualny” . Gdy próbuję rozwiązać ten przy użyciu svn up MójFolder, pojawia się konflikt drzewa znowu:
A + C folder > local add, incoming add upon update
M + myfolder\file.txt
Ok, więc staramy svn rozwiązać --accept folderu znowu działa. Ale nadal nie możemy się zobowiązać, otrzymujemy ten sam komunikat, że "svn: Directory"/myfolder "jest nieaktualny", jeśli wykonamy svn up myfolder, wracamy do ostatniego konfliktu drzew.
Jaka jest prawidłowa procedura rozwiązania tego typu konfliktu (gdy chcemy zachować mój folder i jego zmiany)?
EDIT: skrypt linia cmd Windows, aby zilustrować:
rmdir /S /Q C:\svntest
mkdir C:\svntest
cd C:\svntest
svnadmin create repo
svn co file:///c:/svntest/repo co1
svn co file:///c:/svntest/repo co2
cd co1
mkdir folder
echo content > folder\file.txt
svn add folder
svn commit folder -m ""
cd C:\svntest\co2
svn up
cd C:\svntest\co1
svn del folder
svn commit -m ""
mkdir folder
svn add folder
svn commit -m ""
cd C:\svntest\co2
echo changed_content > folder\file.txt
svn up
svn resolve --accept working folder
svn commit -m ""
svn up folder
svn resolve --accept working folder
svn commit -m ""
I tu jest wyjście działa ten skrypt (nota niepowodzenia popełniają na końcu):
C:\>rmdir /S /Q C:\svntest
C:\>mkdir C:\svntest
C:\>cd C:\svntest
C:\svntest>svnadmin create repo
C:\svntest>svn co file:///c:/svntest/repo co1
Checked out revision 0.
C:\svntest>svn co file:///c:/svntest/repo co2
Checked out revision 0.
C:\svntest>cd co1
C:\svntest\co1>mkdir folder
C:\svntest\co1>echo content 1>folder\file.txt
C:\svntest\co1>svn add folder
A folder
A folder\file.txt
C:\svntest\co1>svn commit folder -m ""
Adding folder
Adding folder\file.txt
Transmitting file data .
Committed revision 1.
C:\svntest\co1>cd C:\svntest\co2
C:\svntest\co2>svn up
A folder
A folder\file.txt
Updated to revision 1.
C:\svntest\co2>cd C:\svntest\co1
C:\svntest\co1>svn del folder
D folder\file.txt
D folder
C:\svntest\co1>svn commit -m ""
Deleting folder
Committed revision 2.
C:\svntest\co1>mkdir folder
C:\svntest\co1>svn add folder
A folder
C:\svntest\co1>svn commit -m ""
Adding folder
Committed revision 3.
C:\svntest\co1>cd C:\svntest\co2
C:\svntest\co2>echo changed_content 1>folder\file.txt
C:\svntest\co2>svn up
C folder
At revision 3.
Summary of conflicts:
Tree conflicts: 1
C:\svntest\co2>svn resolve --accept working folder
Resolved conflicted state of 'folder'
C:\svntest\co2>svn commit -m ""
Adding folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date
C:\svntest\co2>svn up folder
C folder
At revision 3.
Summary of conflicts:
Tree conflicts: 1
C:\svntest\co2>svn resolve --accept working folder
Resolved conflicted state of 'folder'
C:\svntest\co2>svn commit -m ""
Adding folder
svn: Commit failed (details follow):
svn: Directory '/folder' is out of date
@Azirath: zaktualizowałem moją odpowiedź, możesz mi powiedzieć, co wersja svn, z której korzystasz? –
Przepraszam za długi czas reakcji, musiałem dostać to niezarejestrowane konto połączone z moim prawdziwym kontem. Zobacz moją odpowiedź w komentarzach do twojej odpowiedzi. – Ziphnor