2012-06-27 9 views
26

Sto provando a commettere una modifica in sovversione in un file. Questo file appartiene a una directory che è collegata al mio progetto tramite un esterno ed è ancorato ad una certa revisione.Subversion: mismatch checksum di base

quando faccio una commetto, ottengo l'errore:

Commit failed 
Base checksum mismatch on.... 

Ho cercato di controllare la directory di nuovo per assicurarsi che era pulito ed eseguire nuovamente il commit, ma ho ancora ricevere lo stesso errore.

Potrebbe essere correlato al commit di un file pegged? Ho pensato che il commit su un file che è ancorato dovrebbe essere possibile e sostanzialmente si stacca da questo codice?

+0

Wh al cliente usi? –

+0

Io uso TortoiseSVN –

risposta

0

La tua copia di lavoro potrebbe essere danneggiata. Puoi provare a ripararlo con SmartSVN (seleziona Modifica | Validate Admin Area). Se questo non aiuta solo un checkout fresco aiuterà.

9

Copia tutti i file nel progetto in una cartella di backup temporanea. Fai clic su "Ripristina" nella cartella del progetto originale. Diff cambiato i file con la cartella di backup, copia i file modificati nella cartella del progetto originale. Conferma e la cartella originale è tornata alla normalità.

Ho appena avuto lo stesso problema su due progetti e questo metodo ha funzionato.

+0

Revert non ha funzionato per me, ma spostando l'intera directory quindi aggiornando (che ha ripristinato la directory), quindi spostando i file modificati nuovamente nella dir ha fatto il trucco per me. –

+0

Revert non ha funzionato neanche per me, ma cancellare l'intera directory, quindi aggiornarlo, quindi spostare di nuovo i file modificati (ma non ovviamente la directory .svn) ha fatto il trucco anche per me. –

5

Il modo che ha funzionato meglio per me, era:

  1. Facendo un'esportazione di tutta la cartella che non impegnerà (utilizzando Tortoise per esempio)
  2. Eliminare la cartella attualmente in SVN (anche utilizzando il vostro client SVN)
  3. Mettere la cartella esportato tutto, nello stesso luogo, come la cartella precedentemente eliminata, preferibilmente con lo stesso nome
  4. Aggiungere e impegnarsi nella cartella
  5. sei tornato dove eravate senza perdere le modifiche e senza checksum errati!
0

Ho avuto questo problema, ma l'eliminazione delle cartelle non sembrava fare nulla.

Sono riuscito a risolvere questo problema effettuando il checkout degli stessi file di origine in un altro posto e copiandoli sui file che presentavano questi problemi.

Pulisci/Ripristina/Aggiorna (dopo aver eliminato i file) non ha fatto nulla.

Sto eseguendo Windows 7 con tortoisesvn versione 1.7.11 64 bit.

39

Il modo in cui ha lavorato per me: la copia

  1. Marchio di file di problematica.
  2. Ripristina.
  3. Unversion e aggiungere per ignorare l'elemento.
  4. Conferma.
  5. Owerwrite ha ignorato il file dalla copia.
  6. Aggiungere il file a SVN.
  7. Conferma.
+1

Senza accesso al repository SVN, questa era la soluzione più pulita per me. Grazie! – sws

+1

Unversioning è stato ciò che ha risolto per me. In eclissi ho creato una copia del file con un nome diverso, cancellato il file danneggiato, SVN-ha aggiunto il nuovo file e poi rinominato il nuovo file con il nome del file originale. Grazie – gnB

+2

Ho provato questa soluzione e mentre funziona, rimuove anche la svn-history di quel file, quindi dovresti valutare attentamente se è qualcosa con cui puoi convivere. – Thomas

0

Quello che ha funzionato per me: la copia

  1. Marchio di versione corrente del file.
  2. svn rm 'filename'
  3. svn ci
  4. cambio il nome del file di nuovo alla
  5. svn add 'filename' originale
  6. svn ci

Dopo questo, i commit e aggiornamenti sembra funzionare correttamente.

0

Controllare la versione SVN del server che potrebbe non corrispondere alla versione locale svn.

1. Controllare la versione SVN seguendo il comando e aggiornarla, se la mancata corrispondenza con la versione del server.

svn --version 

2. Eseguire il checkout del progetto con l'ultima versione di SVN (vale a dire la versione del server svn).

3. Confermare il file.

Nota: Funzionerà solo per il caso di mancata corrispondenza della versione SVN.

-1

Proprio avuto lo stesso problema e ho usato cliente console a trattare con esso:

  1. I file di backup
  2. Eliminazione di file da pronti contro termine di svn rm nomefile
  3. commetterlo
  4. copiare i file di ritorno da uso di backup svn add filename
  5. commetterlo
2

Che cosa ha funzionato per me è:

svn up --set-depth=empty 

poi

svn up --set-depth=infinity 

errore è andato!

+0

Per essere completo, si supponga che il file problema sia foo.cpp. Esecuzione: 'cp nomefile filename.save' ' svn up --set-depth = nomefile vuoto ' ' svn up --set-depth = nomefile infinito ' ' meld nomefile nomefile.salva' – Mac

0

Proprio avuto lo stesso problema e ho usato cliente console a trattare con esso:

  1. I file di backup
  2. Eliminazione di file da pronti contro termine di svn rm filename
  3. commetterlo
  4. copiare i file di ritorno da uso di backup svn add filename
  5. Confermalo