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.