Siamo una società di consulenza software con una moltitudine di progetti per diversi clienti. Usiamo tradizionalmente Subversion, ma al momento stiamo prendendo in considerazione il passaggio a Git.
Una parte significativa dei documenti che produciamo sono condivisi con i nostri clienti (requisiti, progetti globali, specifiche di prova, ecc.) e usiamo MS Office per produrli. In Subversion, potremmo usare la sua funzione "Lock" per garantire che nessuno stia modificando lo stesso documento allo stesso tempo. In Git, non puoi farlo poiché per la sua natura distribuita, git non ha lock.
I lucchetti sono davvero poco più di un meccanismo di comunicazione, ma sono molto efficaci.
Attualmente, il nostro codice e i documenti rivolti al cliente sono in genere in diverse sottocartelle di un repository svn diverso. Quando ti sposti, cosa consiglieresti di fare? Vedo un set di opzioni:
-
Spostiamo i repository svn su git 1-on-1. Invece di usare i blocchi sui file di Office, facciamo ciò che le persone git suggeriscono e in qualche modo proviamo a cambiare il nostro flusso di lavoro per risolverlo. Potrebbe funzionare in una succursale su qualsiasi modifica di un documento e unire quella sopra la revisione. Questo approccio si rompe ad es. Fogli Excel che contengono informazioni sulla gestione del progetto; sono facilmente modificati dai membri del team (e incoraggiamo a farlo), ma non sono soggetti ad alcun processo di revisione formale
-
Utilizziamo git per il codice e svn per i documenti e la gestione del progetto. Questo ha lo svantaggio che alcuni documenti di design più non saranno "vicini" al codice che specifica, aumentando la possibilità che le persone dimentichino di aggiornarli. Inoltre, tutti devono utilizzare e comprendere due set di strumenti. Detto questo, forse questa è una grande opportunità per passare a strumenti di documentazione basati su testo (latex, markdown, HTML, qualsiasi cosa) per documenti di progettazione non rivolti al cliente.
-
Mi piace 1, ma eseguiamo un comando
git lock
che fa ciò che svn lock fa per noi (imposta il flag di sola lettura in modo appropriato e sincronizza con un server in qualche modo).
Non compro l'argomento secondo cui i lock non funzionano in un DVCS perché il sistema dovrebbe funzionare anche quando sei completamente offline. Anche i blocchi Svn possono essere sovrascritti; sono un meccanismo di comunicazione . Senza un qualche tipo di connessione di rete, il tuo computer non comunicherà molto.
Non possiamo essere l'unico negozio che è molto contento di come svn lock
si adatta al nostro flusso di lavoro, vero?
Qualche idea o suggerimento?
Ho trovato link ma la discussione è piuttosto tecnica ; Sto cercando modi per risolvere o evitare il problema pratico di due membri del team che modificano lo stesso file binario allo stesso tempo.