come si definisce quale changeset utilizza un sottorepository kiln / mercurial?

StackOverflow https://stackoverflow.com/questions/8875127

  •  28-10-2019
  •  | 
  •  

Domanda

Nella risposta a questa domanda sul sito di scambio dello stack del forno, c'è un commento che menziona "se esegui il commit da un consumatore della libreria, gli altri consumatori della libreria non vedono immediatamente quei changeset. Devi estrarre esplicitamente le modifiche sul repository della libreriain altri consumatori. "

ho aggiunto alcuni file a un repository a cui si fa riferimento nei file .hgsub e .hgsubstate dei progetti, ma non vengono visualizzati nel sottospository dei progetti (perché il progetto utilizza giustamente il precedente set di modificheè stato assegnato in precedenza)

Mi piacerebbe sapere come modificare il gruppo di modifiche utilizzato da un subrepo.devo solo modificare il file .hgsubstate (sembra un po '"hacker") o esiste un'opzione del sito web command / kiln che posso usare?

È stato utile?

Soluzione

Nel sottorepository, hg update per il changeset che desideri venga utilizzato dal repository principale.Quindi, nel repository principale, emettere hg ci per eseguire il commit della modifica del sottorepository.Mercurial aggiornerà automaticamente il file .hgsubstate con l'ID del changeset genitore corrente del sottorepository.

Esempio (file .bat di Windows):

REM Create main repository
hg init Example
cd Example
echo >file1
hg ci -Am file1
cd ..

REM Create another repository
hg init Library
cd Library
echo >file2
hg ci -Am file2
cd ..

REM Clone the Library into the main repository
cd Example
hg clone ..\Library

REM and configure it as a subrepository.
echo Library=Library >.hgsub

REM Commit it.
hg ci -Am "Added Library sub repository."

REM Note .hgsubstate is updated with the current subrepo changeset.
type .hgsubstate
cd ..

REM Someone updates the original Library.
cd Library
echo >file3
hg ci -Am file3
cd ..

REM Main repo isn't affected.  It has a clone of Library.
cd Example
hg status -S

REM Update to the latest library
cd Library
hg pull -u
cd ..

REM View the changes to the library in the main repo.
hg status -S

REM Commit the library update in the main repo.
hg ci -m "Updated library."

REM Note .hgsubstate is updated.
type .hgsubstate
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top