Domanda

Ho avuto un problema con il commit delle modifiche dopo aver unito due rami del mio progetto usando TortoiseSVN.

Ecco i dettagli:

Ho fatto un ramo unito al tronco del progetto su cui sto lavorando.

Progetto include il repository principale e le librerie associate al repository principale come svn external (anche le librerie sono ramificate) come sottodirectory del progetto .

Quando stavo cercando di eseguire il commit delle modifiche, TortoiseSVN ha detto:

Commit A
re all the targets part of the same working copy? 
Unable to lock 'D:\websites\project\lib' 
Please execute the "Cleanup" command.

Naturalmente Pulizia non ha aiutato.

svn: parola chiave esterna per progetto era ben definita, anche la cartella lib conteneva ancora la versione corretta delle librerie (versione trunk).

Sia il server SVN che il client sono in versione 1.5.x (TortoiseSVN è 1.5.3.x).

Dal punto di vista tecnico sia progetto che librerie sono progetti nello stesso repository SVN.

Hai idea di cosa sia andato storto?

Ho cercato su Google un po 'la soluzione, ma non ho trovato nulla di utile, quindi ho cercato di eseguire il commit delle mie modifiche in due passaggi:

  1. esegue il commit delle modifiche dalla cartella del progetto
  2. esegue il commit delle modifiche dalla cartella delle librerie

Che è andato senza problemi.

Ma mi sto ancora chiedendo perché non potrei impegnare tutto in un unico commit.

modifiche:

  • (Dopo la risposta di Ken G) Versione fissa di TortoiseSVN 1.3.x - > 1.5.3.x.
È stato utile?

Soluzione

svn:external farà sì che Subversion combini percorsi di repository diversi al momento del check-out, ma alla fine quei percorsi sono ancora "disgiunti", quindi devi fare due commit per applicare le modifiche.

Ecco la citazione pertinente da Controllo versione con Subversion

  

E Subversion funziona ancora davvero   solo su copie di lavoro non disgiunte.   Quindi, per esempio, se vuoi impegnarti   modifiche che hai apportato in uno o   più di quelle copie di lavoro esterne,   è necessario eseguire svn commit esplicitamente su   quelle copie funzionanti & # 8212; impegnandosi sul   la copia di lavoro principale non verrà utilizzata   in quelli esterni.

Altri suggerimenti

1.3 di TortoiseSVN è molto vecchio , l'ultima revisione è 1.5.x. Ci sono stati numerosi cambiamenti in Subversion e TortoiseSVN dall'1.3, quindi l'aggiornamento del tuo client è probabilmente la soluzione migliore.

Detto questo, 1.5 TortoiseSVN creerà / aggiornerà le copie funzionanti in un formato versione 1.5. ESSERE MOLTO ATTENTI quando si utilizza TortoiseSVN (o qualsiasi client SVN) contro una precedente copia di lavoro di Subversion.

Penso di ricordare di aver letto di un bug relativo a TortoiseSVN che è stato corretto nell'ultima versione. Consulta le ultime note di rilascio .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top