Como ramificar com TortoiseHG

218

Eu baixei o TortoiseHg 1.0 para avaliação. Pela minha vida, não consigo descobrir como fazer um galho. Parece entender as ramificações (por exemplo, no navegador do repositório), mas não consigo encontrar uma maneira de criar uma ramificação. Isso parece ser uma capacidade fundamental, uma vez que dentre os benefícios frequentemente anunciados do DVC está a ramificação leve.

Pesquisei no Google e não consegui encontrar muita discussão sobre esse tópico (pelo menos para versões recentes), então devo assumir que estou perdendo alguma coisa, certo?

Atualização: Então, sinalizei a resposta de Chad Birch abaixo para responder à questão do "novo ramo". Como ele aponta corretamente, você faz uma confirmação e, em seguida, clica no botão de ramificação para abrir a caixa de diálogo de manutenção da ramificação, onde você cria novas ramificações. Eu meio que gostaria que eles tivessem nos dado uma opção de menu de contexto para isso. Depois de ramificar, a próxima pergunta natural é como mesclar e isso também não é óbvio. Acontece que essa opção está oculta no explorador de repositório. Você precisa selecionar o cabeçalho de outra ramificação, clicar com o botão direito do mouse e selecionar "Mesclar com ...".

Michael Tiller
fonte
A ramificação está seriamente oculta em um aspecto totalmente não intuitivo do fluxo de trabalho. Ramificação e confirmação são duas operações muito distintas e não faz sentido enterrar ramificações profundamente na interface de usuário de confirmação. Como normalmente confirmo antes da ramificação, não me ocorreu olhar sob a interface do usuário de confirmação. A ramificação ainda é efetivamente não documentada, mesmo em meados de 2016 ; Chad Birch mostra o que é necessário para a documentação de ramificação; ainda é horrível, mas, como ele observa, ele é apenas o mensageiro ... #
234

Respostas:

213

Conforme mostrado na documentação , tudo o que você precisa fazer é clicar no branch: defaultbotão próximo à parte superior da caixa de diálogo de confirmação e mudar para um novo nome de filial.

Chad Birch
fonte
30
Ah, eu vejo onde diz "pressionar este botão abre uma caixa de diálogo de manutenção da filial". Isso de fato abre uma caixa de diálogo que, como se vê, permite a criação de ramificações, mas eu discordo da declaração "Conforme mostrado nos documentos", pois não há menção explícita de como criar uma ramificação em qualquer lugar da página que Eu poderia encontrar. Eu me pergunto o que a ramificação fez para merecer o tratamento de segunda classe no TortoiseHg (em comparação com as outras ferramentas Tortoise *, onde é uma opção de menu de contexto de primeira classe). :-)
Michael Tiller
31
Ah, eu não estava tentando insultar de maneira "RTFM" ou algo assim, só precisava de algum tipo de frase para vincular à página relevante. Talvez "como vagamente implícito nos documentos" teria sido mais apropriado nessa situação.
Chad Birch
1
Sem suor. Eu também não estava tentando insultar. Eu só queria deixar claro para qualquer um que viesse olhar para o link que você realmente precisa ler nas entrelinhas dos documentos para obter a resposta, uma vez que não é mencionado explicitamente.
Michael Tiller
8
Nas versões recentes do Mercurial, você precisa fazer o hg push --new-branchpush de uma nova ramificação para um repositório remoto. Veja stackoverflow.com/questions/2365483 para saber como fazer isso no TortoiseHg.
Peter Graham
26

Para iniciar uma nova ramificação com o TortoiseHg, pressione Confirmar ... e, acima da mensagem Confirmar, pressione Ramificação e, em seguida, "Abrir nova ramificação nomeada:"

nme
fonte
9

Só queria acrescentar que, para enviar uma nova ramificação para o repositório remoto, há uma caixa de seleção na guia Sincronizar em Opções de "Permitir envio de uma nova ramificação" - você deve se lembrar de desativá-la novamente imediatamente.

TamW
fonte
8

Na maioria das vezes em mercurial, você é cloneo repositório para fazer uma ramificação.

Você pode mesclar os repositórios separados depois de fazer suas edições e confirmações.

Pode parecer que ocuparia muito espaço em disco, mas na maioria dos sistemas operacionais, o mercurial fará links físicos em vez de copiar os arquivos. De qualquer forma, o espaço em disco normalmente é barato e, por ser local, é bastante rápido.

Se você pensar bem, todo "checkout" (na terminologia svn) ou "clone" (na terminologia mercurial) é realmente um ramo que provavelmente será mesclado de volta, por isso faz muito sentido que os clones sejam a maneira comum de criar ramos.

Blokeley
fonte
11
Não é conveniente para ramificações de recursos.
Torre
Acordado. Se você possui ramificações de longa duração (semi-permanentes), como uma ramificação estável da versão 1 e uma ramificação estável da versão 2, convém usar ramificações nomeadas . Veja também a documentação do ramo mercurial .
blokeley
11
-1. Este é, na melhor das hipóteses, um hack. A clonagem para ramificação não funcionará se você estiver seguindo um repositório remoto, pois não pode enviar por push suas alterações locais. Isso significa que você não pode compartilhar sua filial com outros desenvolvedores com quem está trabalhando. A maneira correta de ramificar é criar um ramo nomeado dentro do seu repositório.
Peter Graham
8
A clonagem ainda é a forma como o livro oficial de mercurial recomenda ramos "de grande porte" hgbook.red-bean.com/read/… Não atire no mensageiro.
blokeley
0

Antes de confirmar, clique no botão Ramificação (veja a imagem) e selecione uma ramificação ou crie uma nova (digitando onde você seleciona as ramificações).

Veja a imagem aqui

Felipe Dias
fonte