Non posso eseguire il commit delle modifiche dopo l'unione in SVN
-
03-07-2019 - |
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:
- esegue il commit delle modifiche dalla cartella del progetto
- 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.
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 .