SVN X остава в дървовиден конфликт

Използвам VisualSVN (който използва Tortoise). Случайно премествам папка на друго място. Когато се опита да го премести обратно, SVN повръща с тази грешка. Случвало се е веднъж преди и успях да направя някои произволни актуализации/комити, без да знам какво правя и беше „поправено“. Не мога да направя същата магия отново, така че трябва да знам как да получа моите файлове и директория и дървовиден конфликт.

Благодаря!


person Paul Knopf    schedule 13.04.2010    source източник
comment
Вижте също stackoverflow.com/questions/2406469/svn-remains-in- конфликт (нито един от отговорите на тази страница не ми помогна)   -  person Jay Sullivan    schedule 12.02.2015
comment
Обърнете внимание, че това може да се случи, дори ако правите нещата както трябва - т.е. някой се движи по папки върху вас в репото и вие не знаете за това.   -  person granters    schedule 20.06.2019


Отговори (6)


Имах същата грешка (конфликт на дърво), но от различен работен процес.

Намерете кой процес има заключването. Изтеглете Handle.exe и отворете папката, в която сте извлекли. След това стартирайте "C:\path\handle.exe" "C:\path\FileOrFolder".

https://technet.microsoft.com/en-us/sysinternals/bb896655.aspx

Работен процес за възпроизвеждане:

- delete folder (having one of the files locked by a program that is within this folder)
- commit parent folder of folder you deleted, and look for red text of the folder you deleted (it should be brown, not red if there aren't issues in SVN)

Да поправя:

- forcefully kill the lock (or close the program so it releases the lock)
- run cleanup command on folder you deleted
- revert folder you deleted
- delete folder you deleted
- commit parent folder of folder you deleted
person MacGyver    schedule 02.04.2012
comment
Това определено е най-добрият отговор. - person robomc; 20.08.2012

Не съм сигурен в какво състояние е сега, но най-добрият ви залог вероятно би бил:

  1. Преместете напълно папката от вашето хранилище
  2. Do an svn cleanup
  3. Do an svn update
  4. Копирайте обратно файловете от папката (без .svn файловете), като презапишете старите изходни файлове, които току-що бяха актуализирани svn.
person Brian R. Bondy    schedule 13.04.2010
comment
Не ми върши работа. Получавам svn: Не може да се заключи път/към/директория/I/just/moved/back, когато се опитвам да се ангажирам след това. - person aioobe; 06.11.2011

http://rubyjunction.us/subversion-hell-sh

Редактиране

Ето скрипта на обвивката от връзката, който може да бъде полезен за потребителите на Linux/Unix...

#!/bin/sh

if [ "" == "$1" ] ; then
  echo "Usage: subversion-hell.sh A_PROJECT"
  echo "A_PROJECT should be a Subversion folder you are having problems with,"
  echo "and you should be in the folder above A_PROJECT"
fi

DIR=`pwd`
PWD=$DIR
DIR=`echo $DIR | sed s/^.*\\\/trunk/trunk/`

mkdir ~/tmp/       2>/dev/null
rm -Rf ~/tmp/$1   2>/dev/null
mv ~/$DIR/$1 ~/tmp/
find ~/tmp/$1/ -iname '.svn*' -exec rm -Rf {} \; 2>/dev/null
cd $PWD
echo svn co YOUR_URL_HERE/$DIR/$1 $1
svn co YOUR_URL_HERE/$DIR/$1 $1
cp -Rf ~/tmp/$1/* $PWD/$1/

# YOUR_URL_HERE can be found by looking in file .svn/entries, near the top
person Rod McLaughlin    schedule 26.10.2010
comment
Еми... това няма ли да премахне домашната ви директория, ако проблемната папка е ..?! (би било игнориране на информацията за употреба в скрипта, разбира се, но все пак малко опасно) - person Stefan L; 17.12.2011
comment
Друго нещо, cp в края няма да копира модифицирани файлове или директории, започващи с . (точка) назад върху това, което е актуализирано от SVN. - person Stefan L; 17.12.2011
comment
Направих копие и след това изтрих папките от svn и локалната файлова система. След това на Windows трябваше да направя скритите папки видими. След това изтрих всички папки с .svn в папките, които искам да актуализирам. след това заложих папките. и това проработи - person Leoa; 17.05.2013

Имах същия проблем, когато се опитах да изтрия клон в Linux среда. Това, което направих беше:

  1. svn връща клон
  2. svn нагоре
  3. svn почистване
  4. svn премахване на клон - маркиране на клона отново за премахване
  5. svn ci

Не знам какъв беше проблемът, но го изпитах два пъти за две седмици.

person satmovi    schedule 23.08.2012

Съхранявайте резервно копие на папката, която сте преместили. Сега в SVN щракнете върху TortoiseSVN>>Resolved. Изберете файловете/папката и разрешете. Сега актуализирайте/комитирайте svn данните.

person Shravan Hosamani    schedule 21.09.2016

Обърнете внимание, че това може да се случи, дори ако „не сте направили нищо“ – т.е. някой се движи по папките с вас в хранилището и вие не знаете за това. Случвало ми се е. Ако случаят е такъв, изтрийте проблемната папка от вашето хранилище и svn update.

Конфликт в дървото възниква, когато разработчик премести/преименува/изтрие файл или папка, които друг разработчик също е преместил/преименувал/изтрил или просто модифицирал. Има много различни ситуации, които могат да доведат до конфликт на дърво и всички те изискват различни стъпки за разрешаване на конфликта.

person granters    schedule 20.06.2019