7

Al lavoro usiamo per forza e siamo incoraggiati a fare regolari commit ad esso (qualcosa che sto bene con). Tuttavia, mi piacerebbe eseguire qualcosa di simile al mercurial in modo da poter effettuare il commit localmente di cose che sono in corso e che non compila necessariamente/run e quindi da questo i miei commit regolari al server perforce centrale.Local commit su un server centrale

La mia domanda qui è una specie di duplice, prima di tutto, qualcuno sa quanto bene Visual Studio potrebbe far fronte a più associazioni di controllo del codice sorgente (idealmente voglio che tutto sia il più autonomo possibile - hey, sono pigro:))

E in secondo luogo, ci sono strumenti disponibili che mi consentano di fare qualcosa di semplice come "Controlla corrente del repository mercuriale in forfor".

Mi sembra di ricordare che GIT ti permette di fare qualcosa di simile a questo, e non sono del tutto contrario a provarlo.

Se ho perso fuori qualche cosa ovvia o sto pensando a questo in tutto il modo sbagliato, non esitate a rimproverare me;)

Acclamazioni

risposta

3

L'interesse della tua idea non è tanto nei commit privati ​​quanto nello "sviluppo off-line": Mercurial o Git ti consentirebbero di lavorare anche se non sono collegati al repository centrale di Perforce.

Ma per quanto riguarda la ramificazione, è più facile creare o unire con Hg o Git, quindi potrebbe essere un'idea.
Il principio sarebbe quello di creare il repository Hg o Git direttamente nell'area di lavoro Perforce.

questo articolo using mercurial with perforce (or some other centralized vcs) fa illustrare un approccio simile:

Se il codice è già in necessariamente, tirerò giù una copia e hg init un repository locale; altrimenti inizierò a usare mercurial e verificheremo in seguito (normalmente questo è per un picco).
Il farò un po 'di lavoro, commettendo mentre vado al mercurio.
Il mio commit forzato tende ad essere un rollup di commit hg più piccoli, in alternativa se voglio tenere traccia delle modifiche in particolare controllerò i singoli hg commit spostando in avanti la cronologia usando "hg update" (un po 'di più su questo sotto).
Non commettere la cartella .hg in necessariamente dal modo in cui

+0

Grazie, ci proverò più tardi oggi:] – Lee

+0

Questo sembra funzionare - anche impostare una macro per salvare tutti i file e commettere ... overkill:] – Lee

6

A mio parere, ciò che si vuole è diverso rami invece di più sistemi SCM. Se si desidera avere il proprio parco giochi in cui è possibile inviare lavori in corso, creare un ramo di sviluppo fuori dal ramo principale di Perforce. È possibile aggiornarlo regolarmente con elementi che altri inviano e integrano le modifiche al main una volta che si è soddisfatti/fatti.

Questo elimina anche la domanda su quanto bene VS avrebbe affrontato con esso.

+0

un punto equo e uno sicuramente da considerare, tuttavia la nostra perforazione può essere a volte LENTA da commettere. Ma lo considererò sicuramente! – Lee

2

Git è dotato di un front-end git-p4 che permette di creare un nuovo repository git che tiene traccia di tutto o parte di un sub Perforce albero. (Gli spazi di lavoro complessi del client non sono supportati, l'ultima volta che ho controllato). git-p4 si trova normalmente nell'albero contrib e potrebbe o meno venire con l'installazione di Git, oppure è possibile prendere una versione recente here, from git.kernel.org. Questo script richiede Python.

In sostanza, si git p4 clone tuo monte //depot/path e quindi può git p4 sync di abbattere nuovi cambiamenti nel vostro ramo corrente, o git p4 rebase per rebase vostra filiale corrente sulla parte superiore del percorso Perforce monte. Se si dispone di uno spazio di lavoro Perforce separato adiacente al proprio repository git, è possibile quindi git p4 submit. (Io uso uno strumento interno separato su VMware per l'invio ai nostri server Perforce, quindi non ho usato lo git p4 submit.)

Sfortunatamente, non so quanto bene VS si occupi di git o git e Perforce contemporaneamente. La mia ipotesi è che qualsiasi integrazione VS non si occupi del lato Perforce di git-p4, ma è possibile eseguire tutte le normali operazioni git nel modo in cui si fa normalmente e utilizzare una shell per chiamare git-p4.bat o alcune di tali operazioni Perforce.

Un'altra opzione è semplicemente disporre di un repository git (o Mercurial) inizializzato direttamente nell'area di lavoro Perforce. Here è un esempio di someone who does this with Mercurial.

+0

Ho trovato questo articolo molto utile: https: // git.wiki.kernel.org/index.php/Git-p4_Usage –