Domanda

Così Im un controllo origine idiota quindi vi prego di umorismo con questa lista di controllo.

Alla fine ho deciso di utilizzare Mercurial + TortoiseHg + (VS2010 + HgSccPackage ) + forno per il mio prossimo progetto.

http://hginit.com/ e ho suonato in giro un bel po ', ma io don' t so molto di controllo del codice sorgente, quindi non voglio fare un errore qui, il mio progetto attuale è ancora il mio uno più grande e di maggior valore.

Quindi ecco la mia lista di controllo:

creazione :

  1. creo un nuovo repo in forno in linea.
  2. Poi clone sul mio pc.
  3. copio tutta la mia cartella del progetto (Soluzione con progetti mutiple in quella cartella) in pronti contro termine.
  4. questo contenuto in una. file di hgignore nella radice di pronti contro termine.
  5. TortoiseHg clicco file aggiuntivi
  6. Di tanto in tanto impegno da VS.
  7. Quando sono buono e pronto vado Sync-> Push
    (Quindi questo è tutto buono giusto?)

Un problema che ho avuto qui è. Non riesco a trovare Aggiungi file equivalente in HgScc, ho notato quando ho aggiunto un nuovo file dal VS-IDE, non ha l'icona di controllo del codice sorgente. (La sua non è aggiunto al mercuriale?)

Così ho finito per l'aggiunta di file tramite l'IDE e non hanno avuto un assegno. Poi, dopo un paio di commit (e altre cose che non ricordo) ho notato che c'era un ramo in più o qualcosa: alt text

E ora Se vado provare a spingere ho "(did you forget to merge? use push -f to force)". (E sì ho colpito in entrata e non ho nei prossimi modifiche)

In ogni caso, è stato solo un parco giochi, ** ho appena realizzato utilizzando TortoiseHg -> Aggiungi file ogni volta che ho creato file da VS correzioni cose? ** (O c'è un modo migliore qui?)

Branching:

Così Im un po 'confuso circa il nome ramificazione, ma forno come la propria filiale / clone di thingy. I leggere le istruzioni qui

  1. Quindi, in linea, ho l'opzione che creano una "succursale" in forno in linea.
  2. Quindi io clonare questo come un nuovo repo a livello locale (come se si trattasse di un nuovo repo)
  3. farò le mie modifiche, si impegnano, spingere.
  4. Poi tirerò dalla repo MAIN e spinta dal mio ramo pronti contro termine al MAIN.

Quindi non sto davvero vedere alcuna opzione di unione qui, Im indovinando maniglie mercuriali la fusione da solo? Quindi non vedo il ramo dalla explorer repository? È così che la sua dovrebbe essere fatto?

Ultima domanda, qual è la differenza tra la storia e Vista Change Log opzioni e ciò che hg opzioni fare corrispondono a:?

alt text


Aggiorna : Hai dimenticato di menzionare Sono lo sviluppatore in totale solitudine su questo progetto. = P

È stato utile?

Soluzione

Ecco le vostre domande individuali, uno per ogni sezione, con la mia opinione / risposta su ciascuno di essi.


7. Quando sono buono e pronto vado Sync-> Push (Quindi questo è tutto il bene giusto?

Una corretta.

L'unica cosa che potrebbe differire in questo flusso di lavoro è, se c'è qualcun altro anche spingendo allo stesso repository. Se si dispone che, a un certo punto qualcuno ha spinto gruppi di modifiche al repository che non si hanno a livello locale. Quando si tenta di spingere il vostro che avrebbe creato un ramo nel repository online, reso visibile da più "teste" (si dovrebbe guardare a quel termine in un contesto Mercurial se non si capisce cosa intendo con questo.) In genere si don' t permettere che ciò accada, in modo dalla spinta sarà interrotta.

Quando si interrompe, invece si tirerebbe i gruppi di modifiche dal basso repository on-line in quello locale, si fondono la testa di modifiche con la testa che hai appena tirato, e poi ritentare la spinta, che di solito successo (a meno che non siete sfortunati e qualcun altro ha spinto di più nel frattempo.)


Per quanto riguarda HgSCC e aggiungere i file, ho avuto problemi con HgSCC così sono passato a VisualHg - http: // visualhg. codeplex.com , proprio perché sembra che ci sia qualcosa di sbagliato con la versione 1.52 di HgSCC per quanto riguarda i nuovi file. Se non è possibile trovare una soluzione per questo, vorrei suggerire di provare VisualHG.


hai dimenticato di unione?

Si dovrebbe unire le modifiche insieme, in modo da avere una sola testa di nuovo. Hai 3 in quella schermata di esempio, "il pulsante aggiunto per formare 2", "finale commit" e "2 ° PRJ (2)". Si consiglia di aggiornare a quella che si considera essere "la maggior parte del progetto", selezionarlo, quindi fare clic destro su una delle altre teste e selezionare "Unisci con ..." in TortoiseHg, e completare l'unione e impegnarsi. Ciascuna di tali merge + commettere eliminerebbe 1 testa, quindi è necessario almeno 2 tali unioni di tornare fino a 1 testa.


Kiln e Fogcreek ha una nozione diversa su come gestire i rami di molti altri hanno. Essi suggeriscono di creare un repository ramo completamente diverso e il lavoro in quanto, invece di utilizzare rami con nome. Un ramo di nome sarebbe simile a voi nominare i tre gruppi di modifiche nel vostro screenshot (3 che terminano con "finale commit") come un ramo per l'aggiunta di una nuova forma o la fissazione di un grosso insetto.

Così, invece di fare quello che hai fatto qui, avendo 3 teste, il forno "via" sarebbe quello di avere 3 cloni, ciascuno con solo i gruppi di modifiche fino alla loro testa ramo. In pratica si avrebbe 1 repo clone con tutto ciò fino a "ha aggiunto secondo modulo", e continuando con "seconda proj", ma i gruppi di modifiche trascorre non sarebbe lì. Il secondo clone dovrebbe avere fino a "ha aggiunto secondo modulo", e quindi l'uno in più con l'etichetta "pulsante aggiunto alla forma", e la terza sarebbe "ha aggiunto secondo modulo", e poi i tre che termina con "finale commit".

Naturalmente, alla fine, quando spingere e tirare per tornare al repository principale, si finisce con quei rami comunque, ma si consiglia di utilizzare i repository filiali così per i rami più grandi, come l'aggiunta di grandi caratteristiche, i moduli, ecc.


Im indovinando maniglie mercuriali la fusione da solo?

Unire nello scenario sarebbe venuto in gioco solo se si dispone di nuovi gruppi di modifiche sia nel repository originale e nel vostro ramo clone repository.

Se si dispone che, spingendo dal repository ramo al repository originale (o tirando l'altro modo) aggiungerebbe nuove teste nel repository di destinazione. Questo è ciò che la fusione avrebbe aiutato a evitare.

In questo modo, il flusso di lavoro vorrebbe segue:

  1. Inserire tutte le modifiche al repository ramo (es. I gruppi di modifiche derivanti dalla ragione avevi bisogno il repository ramo, in primo luogo, grande bugfix, novità, grande riscrittura, a prescindere)
  2. Prova a spingere da repository ramo al repository originale, ottenendo messaggio che questo creerà testa sotto la repository di destinazione, in modo che si interrompe.
  3. Tirare giù dal repository originale in repository ramo. Questo creerà un altro teste.
  4. tirare da repository ramo al repository locale, e fare l'unione qui, la manipolazione qualsiasi e tutti i conflitti di unione, infine, commettendo l'unione di modifiche
  5. Push dal retro repository locale in ramo repository
  6. Finalizzare eventuali revisioni del codice che si potrebbe desiderare di fare in forno prima di rendere ufficiale
  7. Push dal repository ramo al repository originale (notare che questo è lo stesso di fase 2, se qualcun altro (o voi) hanno fatto più lavoro nel repository originale nel frattempo, salta di nuovo al punto 3 e ripetizione)

differenza tra le opzioni di visualizzazione di storia e Vista registro delle modifiche

La differenza è proprio quello che si visualizza su. Visualizza cronologia mostra sempre la storia per quello che avete scelto, sia esso un file o il file di soluzione in sé, vale a dire. solo di modifiche che coinvolgono quel file.

Visualizza Changelog vede il registro di modifiche per il repository, indipendentemente da ciò che è stato selezionato.

Altri suggerimenti

Stampa questa, laminato e attaccarlo alla parete. L'ho fatto.

http://secretgeek.net/mercurial_flow.asp

Se il progetto non è ancora controllata da Mercurial, quindi si dovrebbe utilizzare "Aggiungi al controllo del codice sorgente" di comando. Fai clic destro sulla soluzione o file di progetto in Esplora soluzioni e selezionare il comando nel menu contestuale. Questo comando anche creare un repository in soluzione / posizione progetto, se non ce n'è uno.

Se si è aggiunto il progetto al di fuori mercuriale di Visual Studio, allora avete bisogno di ricaricare un progetto in IDE. Altrimenti HgSccPackage non sanno che il progetto è controllato.

Se il progetto è controllato, quindi l'aggiunta di nuovi file esistente o per quel progetto da IDE sarà automaticamente aggiungerli alla Mercurial.

comando Unisci è disponibile nella finestra di dialogo "Change Log". Per fare l'unione è necessario "Aggiorna" per Rev1, quindi selezionare la revisione da unire con (Rev2), e quindi eseguire il comando "Unisci" utilizzando il comando comando di barra degli strumenti o menu di contesto.

Se pensi di aver trovato un bug in HgSccPackage, quindi creare un problema con i passaggi per riprodurre a HgSccPackage issue tracker ( http://bitbucket.org/zzsergant/hgsccpackage/issues ).

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