como você define qual changeset um forno / subrepositório mercurial usa?

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

  •  28-10-2019
  •  | 
  •  

Pergunta

Na resposta a esta pergunta no site de troca de pilha do forno, há um comentário que menciona "se você fizer commit de um consumidor da biblioteca, os outros consumidores da biblioteca não verão imediatamente esses conjuntos de alterações. Você deve puxar explicitamente as mudanças no repositório de bibliotecaem outros consumidores. "

Eu adicionei alguns arquivos a um repositório que é referido nos arquivos de projetos .hgsub e .hgsubstate, mas eles não estão aparecendo no sub-repositório de projetos (porque o projeto está usando corretamente o conjunto de alterações anteriorfoi atribuído anteriormente)

Eu gostaria de saber como editar qual conjunto de alterações um subrepo usa.eu apenas edito o arquivo .hgsubstate (parece um pouco "hackeado") ou há uma opção de site command / kiln que eu possa usar?

Foi útil?

Solução

No subrepositório, hg update para o changeset que você deseja que o repositório principal use.Então, no repositório principal, emita hg ci para confirmar a alteração do subrepositório.O Mercurial atualizará automaticamente o arquivo .hgsubstate com a ID do changeset pai atual do subrepositório.

Exemplo (arquivo .bat do 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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top