Como você evita trabalhar no ramo errado?

27

Ser cuidadoso geralmente é suficiente para evitar problemas, mas às vezes eu preciso checar novamente o ramo em que estou trabalhando ( por exemplo, "hmm ... estou no devramo, certo?"), Verificando o caminho de controle de origem de uma forma aleatória. Arquivo.

Ao procurar uma maneira mais fácil, pensei em nomear os arquivos de solução de acordo ( por exemplo MySolution_Dev.sln ), mas com nomes de arquivos diferentes em cada ramificação, não consigo mesclar os arquivos de solução.

Não é grande coisa, mas existem métodos ou "pequenos truques" que você usa para garantir rapidamente que está no ramo correto? Estou usando o Visual Studio 2010 com TFS 2008.

henginy
fonte
2
Isso soa como um bom candidato para uma extensão do VS 2010 a ser escrita, o que permite algum tipo de sugestão visual configurável para indicar a ramificação. Talvez colorir o plano de fundo do Solution Explorer de acordo com as configurações do usuário (eu faria verde para Dev, amarelo para QA e vermelho para Prod).
Jesse C. Slicer
Boa ideia, mesmo um indicador na barra de título do VS ajudaria.
henginy
1
Eu diria que isso deve ser bastante eficaz. Eu tenho a minha festa set prompt para incluir o meu git branch e se os arquivos de origem estão limpos ou se eles precisam de um check-in
Daenyth
O TFS não tem algo equivalente a git statusou hg status?
Eu uso a interface do usuário do VS para operações do TFS, então não tenho uma ideia.
henginy

Respostas:

16

Estou usando este http://visualstudiogallery.msdn.microsoft.com/f3f23845-5b1e-4811-882f-60b7181fa6d6

Atualiza seu título para, por exemplo:

Desenvolvimento \ meuprojeto

ou

Main \ myproject

ou

Release \ myproject

Espero que ajude

ynnok
fonte
Isso parece fazer, eu vou tentar .. #
00 henginy
Eu uso essa extensão exatamente para esse fim. Na verdade, eu estava prestes a postar o link, quando vi que o ynnok já tinha.
Bobson
1
Acabei usando este aqui, como posso ver no título em que ramo estou. Realmente fantástico!!!
Piotr Kula
Sim, é realmente muito conveniente!
henginy
16

Nomeie os diretórios de trabalho de maneira diferente. Ou seja, se o seu projeto for intitulado "MY_PROJECT", crie um diretório de trabalho diferente para cada ramificação. Se houver um ramo chamado "dev", você precisará de um diretório para o tronco e um diretório para o dev, como este:

~/henginy/projects/MY_PROJECT-trunk
~/henginy/projects/MY_PROJECT-dev
Matthew Rodatus
fonte
Os diretórios realmente ativos são nomeados de maneira diferente. Mas com um Visual Studio já aberto, (por exemplo, depois de fazer uma pausa para o café e retornar à minha mesa), preciso verificar o caminho de um arquivo para ver o diretório. Então eu acho que é a maneira mais simples e não há como escapar disso?
henginy
2
@ henginy Esse é um bom esclarecimento. Para determinar isso no Visual Studio, passe o mouse sobre a guia de um arquivo aberto. Ele exibirá uma dica de ferramenta do caminho completo do sistema de arquivos, a partir do qual eu posso determinar se a raiz é "-dev" ou "-trunk". Tente isso e veja se funciona para você.
Matthew Rodatus
1
Sim, isso é exatamente como eu "verificar o caminho de um arquivo aleatório controle de origem", e eu estou tentando encontrar uma maneira mais rápida :)
henginy
@ henginy Oh, certo. Você disse isso no OP. Não conheço uma maneira melhor de sair da minha cabeça. Parece que eu não melhorei sua situação. :-(
Matthew Rodatus 14/10
Eu deveria ter esclarecido isso melhor na minha pergunta. Obrigado pela ajuda!
henginy
8

Eu não trabalho em um desenvolvedor genérico ou ramo de tronco.

SEMPRE trabalho em ramos de recursos. Quando um recurso é concluído, sigo estas etapas.

  1. Abra o Explorer de controle de código-fonte.
  2. Mesclar do dev para o ramo de recurso atual.
  3. Corrija quaisquer conflitos e garanta que tudo ainda funcione.
  4. Faça o check-in novamente. Mesclar recurso no ramo dev.
  5. Solução de desenvolvimento aberto.
  6. Checkin dev branch.
  7. Feche a solução dev.
  8. Deixe o CI criar e implantar.

Eu só tenho o ramo dev aberto por alguns minutos e fechá-lo imediatamente.

CaffGeek
fonte
7

Você pode criar um arquivo vazio em cada ramificação, por exemplo, THIS_IS_TRUNK.txt no tronco e THIS_IS_DEV.txt no DEV.

Robstel
fonte
2
Isso pode realmente funcionar .. Especialmente com um sublinhado na frente do nome do arquivo para movê-lo para cima no Solution Explorer.
henginy
6

Eu faço muito do meu trabalho (D) VCS a partir da linha de comando. Eu recomendo ter sua exibição rápida onde você está. Por exemplo, minha solicitação quando em um repositório Git se parece (eu faço isso também com o SVN):

[BranchName]RepoTop/path/to/current/wd >>

E se o repositório estiver sujo no momento (alterações não confirmadas):

[BranchName!!]RepoTop/path/to/current/wd >>

Eu também tenho o fundo definido como vermelho se estiver logado no prod, coisas assim. Acho que notificações visuais simples são super eficazes para mim.

Você mencionou que costuma ver isso mais depois de voltar ao seu computador. Encontro uma nota de post-it, com meu foco atual (ramo, bug #, recurso) preso ao teclado quando saio, para ser super eficaz ao permitir que eu volte ao trabalho rapidamente, em vez de recriar o que quer que eu tenha feito na última .

mitchellhislop
fonte
4

Há uma extensão gratuita do Visual Studio chamada TFS Solution Info que pode ajudar nisso. Ele mostra a ramificação e o espaço de trabalho atuais em uma pequena janela que você pode encaixar / fixar onde quiser.

Glenn Arndt
fonte
Olhar impressionante, mas faz VS2012 apoio
Piotr Kula
3

Estou usando a extensão VSCommands (com o Visual Studio 2012, mas existe uma versão de 2010) e, convenientemente, coloca o nome da ramificação no canto superior esquerdo da tela, bem como no gerenciador de soluções.

Não é afiliado ao produto de forma alguma, apenas um usuário satisfeito.

R0MANARMY
fonte
1
Parece muito ruim, infelizmente, você tem que pagar por todo o material extra que pode não ser necessário :(
Piotr Kula
2

Evito trabalhar no ramo errado fazendo quase tudo em um ramo (no tronco - conforme a estratégia de ramificação do "tronco instável" ).

Os casos em que sou forçado a atualizar ramificações são muito raros - são correções de erros de pré e pós-produção (o código candidato ao produto é isolado nas ramificações). Como essas correções também devem estar no porta-malas, eu normalmente rascunho, testo e verifico ali no porta-malas, depois porta para a filial do produto. Portar como regra envolve apenas uma cópia direta de 1 a 5 arquivos para ramificação e verificação de compilação.

  • Eu também sou um pouco de sorte que na maior parte da minha gestão de projectos preferido para convencer os clientes a usar versões mais recentes em vez de remendar os velhos - este traz de pós-produção parte das atualizações em ramos para o mínimo quase insignificante.
mosquito
fonte
É realmente bom não ter que manter os lançamentos anteriores. Nesse caso, eu usaria apenas um ramo para fins experimentais, eu acho.
henginy
@ henginy Não me lembro de casos em que tive o luxo de não ter que manter lançamentos anteriores. No entanto, a atitude de gestão pode fazer uma grande diferença aqui: dependendo dele pode-se, por exemplo, quer implementar 1-2 hotfixes / ano em ramos mais velhas ou mexer com estes metade o tempo todo
mosquito
1

Uma resposta específica depende do software de controle de versão que você está usando, mas geralmente há um comando que permite ver facilmente o ramo em que você está trabalhando. Por exemplo, com o Subversion, use o svn infocomando em um diretório para ver a URL dessa ramificação. Se você estiver mais interessado em um arquivo específico, também poderá especificar isso:

caleb-dev$ svn info foo.c 
Path: foo.c
Name: foo.c
URL: https://svn.mycompany.com/repo/sample/branches/caleb-dev/foo.c
Repository Root: https://svn.mycompany.com/repo/sample
Repository UUID: d62f7aef-3ad2-6098-12a-c16647d854ab
Revision: 1042
Node Kind: file
Schedule: normal
Last Changed Author: caleb
Last Changed Rev: 1031
Last Changed Date: 2011-06-07 15:28:27 -0400 (Tue, 07 Jun 2011)
Text Last Updated: 2011-06-08 03:08:12 -0400 (Wed, 08 Jun 2011)
Checksum: 123456789098765432123456789098

A partir da URL, posso ver que minha cópia do foo.c está no ramo caleb-dev.

Não preciso fazer isso com muita frequência porque meu diretório local tem o mesmo nome que o ramo. Uma rápida olhada no meu prompt de linha de comando geralmente é suficiente para confirmar que estou no diretório certo e, portanto, trabalhando no ramo certo.

Caleb
fonte
1

Muitas respostas aqui já, mas nenhuma que toque na solução simples que temos onde trabalho: para cada filial, crie uma nova VM contendo um ambiente de desenvolvimento e faça o check-out na filial apropriada. Você só precisa fazer isso e acertar uma vez e depois alternar as VMs para alternar ramificações.

Mason Wheeler
fonte