SVN rimane in conflitto?


284

Come posso ottenere questa directory dal conflitto? Non mi interessa se viene risolto usando "loro" o "mio" o qualsiasi altra cosa ...

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
la risposta è: [svn nome file risolto] fare questo anziché la soluzione accettata.
Travis Schneeberger,

1
@TravisSchneeberger la soluzione accettata va bene 😉
Hi-Angel

svn resolved * nome file * non lo risolve per me.
reinierpost,

Risposte:


447

Dai il seguente comando:

svn resolved <filename or directory that gives trouble>

(Grazie a @Jeremy Leipzig per questa risposta in un commento)


35
Seriamente, se non ti interessa come viene risolto (forse lo eliminerai comunque) questa è la risposta giusta.
invertito:

1
Questo non risolve nulla. L'errore probabilmente si ripresenterà al prossimo commit.
Tadej,

Grazie mille, funziona per me! È necessario nel repository root svn, è possibile utilizzare questo comando!
GeekHades,

276

Ok ecco come risolverlo:

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

maggiori dettagli sono disponibili su: http://svnbook.red-bean.com/en/1.8/svn.tour.treeconflicts.html


Se stai lavorando con l'IDE Eclipse, puoi anche applicare la mia soluzione "non command line", che ho descritto in una risposta separata di seguito.
Peter Wippermann,

3
usando svn 1.7.4, svn help resolved afferma che "è stato deprecato a favore di eseguire 'svn resol --accept working'."
wreckgar23

35

Per me ripristina solo l' opzione --depth infinity riparata. La directory di Svn rimane in difficoltà:

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

1
per ripristinare un'intera directory di file o un file non esiste più
biology.info

Per risolvere il conflitto di file eliminati localmente che esiste sul server, questa opzione ha funzionato.
Neo

1
Molte grazie. "svn ripristina - profondità infinita." ha funzionato per me e ripristinato i file cancellati, che non sono riapparsi solo con "svn up"
Rauli Rajande

16
  1. svn risolve
  2. svn cleanup
  3. aggiornamento svn

..questi tre comandi della CLI svn in questa sequenza mentre cd-ed nella directory corretta ha funzionato per me.


@Elad Tabak: Nel mio caso ho dovuto farlo nella directory principale del file dandomi problemi, questo potrebbe essere quello in cui ti sei imbattuto
Jay Sullivan,

11

Se stai utilizzando l'IDE Eclipse e ti imbatti in questo errore durante il commit, ecco una soluzione in-tool per te. Sto usando Subclipse, ma la soluzione per Subversive potrebbe essere simile.

Quello che forse non hai notato è che c'è un simbolo aggiuntivo sul file in conflitto, che contrassegna effettivamente il file come "in conflitto".

Fai clic con il pulsante destro del mouse sul file, scegli "Team" e "Modifica conflitti ...". Scegli l'azione appropriata. Ho unito il file manualmente a livello di testo prima, quindi ho preso la prima opzione, che prenderà lo stato corrente della tua copia locale come "soluzione risolta". Ora premi "OK" e il gioco è fatto.

Il simbolo in conflitto dovrebbe essere scomparso e dovresti essere in grado di impegnarti nuovamente.


2
Inoltre, in caso di conflitto di directory, puoi fare "Team-> Show Tree Conflicts" e quindi rivedere tutti quei conflitti e contrassegnarli come Risolti (in una finestra separata "SVN Tree Conflicts")
altumano

6

Un'altra soluzione di seguito,

Se l'intera cartella viene rimossa e SVN genera l'errore "File admin .svn mancante", verrà utilizzato quanto segue per risolvere il conflitto allo stato operativo.

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

3

Istruzioni per Tortoise SVN

Passare alla directory in cui viene visualizzato questo errore. Se non si apportano modifiche, procedere come segue

un. Fare clic con il tasto destro del mouse e fare un "Ripristino"
b. Seleziona tutti i file
c. Quindi aggiornare nuovamente la directory


3

Uso il seguente comando per rimuovere i conflitti usando la riga di comando

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

per ripristinare la directory corrente

svn revert . -R

Hahahaha, no non farlo. Farà cose cattive.
Gufo

Ovviamente
annullerebbe le

in realtà funziona per alcuni problemi come il conflitto e può essere risolto solo tramite cli
zero8

2

Se hai problemi a risolvere (come me) e non puoi eliminare e aggiornare le risorse perché hai apportato molte modifiche su di esse, inoltre stai utilizzando eclipse sovversivo anziché client nativo, segui questi passaggi:

  1. fare una copia dell'intero dir del progetto
  2. esegui team> disconnetti all'interno di eclipse e scegli di eliminare i metadati svn
  3. quindi scegli team> condividi progetto e punta alla stessa cartella in cui risiede il tuo progetto
  4. scegli Sì e impegna tutto (potresti voler escludere alcune risorse molto locali, come i file di configurazione)
  5. se hai eliminato o spostato alcune risorse prima della prima prova di commit, elimina quelle vecchie (avrebbero dovuto raddoppiare, una nella vecchia posizione, una nella nuova) e commettere tali eliminazioni.

Hai finito.


2

Immagino che la soluzione corretta sia:

(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

Ho avuto un problema simile, ecco come è stato risolto

xyz @ ip: ~ / formsProject_SVN $ svn risolto formsProj / templates / Ricerca

Risolto stato conflittuale di "formProj / modelli / ricerca"

Ora aggiorna il tuo progetto

xyz @ ip: ~ / formsProject_SVN $ svn update

In aggiornamento '.':

Seleziona: (mc) mantieni le mosse locali interessate, (r) contrassegno risolto (interruzione mosse), (p) rinvia, (q) abbandona risoluzione, (h) aiuto: r (seleziona l'opzione "r" per risolvere)

Risolto stato conflittuale di "formProj / modelli / ricerca"

Riepilogo dei conflitti: Conflitti dell'albero: 0 rimanenti (e 1 già risolto)


0

Ho avuto lo stesso problema su Linux, ma non sono riuscito a risolverlo con la risposta accettata. Sono stato in grado di risolverlo usando cdper andare nella cartella corretta e quindi eseguendo:

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

È tutto.


Nella seconda riga, è svnnonsyn
Diego Romero Rodriguez
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.