Pergunta

Achei o SVN extremamente útil para documentação, arquivos pessoais, entre outros usos que não sejam de código-fonte.Que outros usos práticos você encontrou para sistemas de controle de versão em geral?

Foi útil?

Solução

Já vi o controle de versão sendo usado para outras finalidades não relacionadas ao código-fonte, como,

  1. Arquivos de esquema - um conjunto de arquivos de esquema XML que representam um esquema do mundo real
  2. Arquivos de conteúdo - conteúdo representado em um formato específico, vinculado a um designer no VStudio, usando controle de origem, permite histórico, reverte tudo, sem interação com banco de dados

Em ambos os casos, notamos que são basicamente arquivos detalhados, a principal razão para ter esses arquivos no controle de origem, em oposição a "registros de texto no banco de dados", é que

  1. arquivos que podem precisar da capacidade de comparar versões
  2. histórico (porque vários usuários trabalham neles)
  3. capacidade de reverter para uma versão anterior
  4. rotulagem e lançamentos obtendo um rótulo específico
  5. se você usar Team Foundation (TFS), todos os modelos de scrum com itens de trabalho, etc.
  6. nenhum banco de dados envolvido, nenhum desenvolvimento extra para todos os itens acima

Outras dicas

Em um dos meus primeiros trabalhos, usamos CVS para controle de revisão de DNS.Era principalmente uma maneira barata e suja de fazer backup dos arquivos de zona.

Também ouvi falar de pessoas que usam um sistema de controle de versão para seus diretórios pessoais.

Durante meu último semestre na escola, tive duas aulas, cada uma com um projeto grande e demorado para ser entregue no final do semestre.Ambos também exigiram vários trabalhos longos ao longo do semestre.Fiz uso intenso do SVN em ambas as aulas para rastrear cada alteração que fiz em cada artigo e projeto.

Sou mais do tipo que “escreve tudo de uma vez” quando se trata de escrever, e tendo a perder a linha de pensamento se tento espalhar o processo por várias sessões.Ser capaz de diferenciar as últimas revisões de meus artigos tornou muito mais fácil voltar aos trilhos.

Eu edito muitos documentos em LaTeX, então uso SVN para armazenar arquivos tex e imagens e assim por diante.Útil para fazer Diffs e espero que me salve se eu tiver um desastre.

Geralmente, qualquer coisa que o processo de construção precise, coloco no controle de origem.O único problema que surge é se você tiver recursos preparados por outros departamentos, por exemplo.Marketing, que vai na sua instalação por exemplo.

Eu tenho uma pasta no caminho chamada bin com utilitários úteis como os da sysinternals e outros.Eu uso o svn para mantê-los atualizados em máquinas diferentes.Além disso, coisas como scripts do PowerShell, arquivos vimrc, etc.são ótimos para manter centralizado.

Nunca pensei em usá-lo para coisas pessoais, mas em projetos de software, verifico praticamente tudo que não pode ser regenerado posteriormente (exemplos disso incluem executáveis ​​e documentos gerados por código).A documentação sempre é verificada.As apresentações aos clientes são registradas e marcadas junto com a base de código usada para demonstração, se houver uma demonstração.

Estou pensando que SVN e CVS não são "amigáveis" o suficiente para usuários não técnicos, mas estou curioso agora para saber os possíveis usos do controle de versão para projetos que não sejam de engenharia ...

A maior parte da documentação será visualizada por mais de um par de olhos humanos.É extremamente útil, por exemplo, durante as fases de planejamento do projeto, quando o analista atualiza o documento de requisitos e você gostaria de ver o que mudou desde a última vez que o viu.Wikis também têm essa funcionalidade, claro.Usamos o SharePoint para essas finalidades, mas escolha seu fornecedor.

Eu uso muito o controle de versão para arquivos comuns, porque tenho um laptop, uma máquina desktop no trabalho e uma área de trabalho doméstica na qual também trabalho muito (trabalho em casa dois dias por semana).

Uma nova sessão em qualquer um deles começa com um script chamado 'start' que atualiza vários checkouts e termina com um script chamado 'stop' que envia algumas coisas para o VCS, ou me mostra pelo menos as modificações.

Eu uso para:

  • minha lista de tarefas Getting Things Done de um arquivo (veja yagtd, a ferramenta que uso)
  • meu banco de dados de senhas (eu deveria ter enviado essa sugestão ao podcast StackOverflow em resposta à pergunta de Joel)
  • todas as minhas notas e arquivos aleatórios em projetos
  • um monte de planilhas (incluindo uma que rastreia algumas coisas pessoais dia após dia)
  • algumas imagens (como os avatares da web que uso)

Além disso, escrevi algo sobre o Subversion para gerenciar arquivos de configuração de sistemas e de minhas contas de usuário.Tenho tantas contas em tantas máquinas e estava cansado de sempre reaprender como configurar meu shell/vim/...então agora também armazeno a maioria dessas coisas no controle de versão.Isso inclui arquivos de assinatura de e-mail, vários scripts de shell em $HOME/bin, ...

Eu uso o controle de revisão para quase todos os meus documentos, para qualquer finalidade.

Estou usando o Mercurial, então configurar um novo repositório em um determinado diretório é uma questão de um simples "hg init", que achei muito menos complicado do que configurar um novo repositório Subversion.

Também descobri que o RCS é ótimo em qualquer situação em que você precise sincronizar arquivos - estou usando isso agora em vez do rsync para todas as minhas necessidades de sincronização.Também é mais fácil fazer backups - clonar um repositório para outro local/máquina/disco significa que posso simplesmente enviar as alterações para esse local, o que é ainda mais fácil com um repositório push padrão.Se você não modificar no repositório remoto, não precisará se preocupar muito em configurar algo diferente do padrão.

Uma das coisas mais legais para mim é que posso sincronizar, fazer backups ou qualquer outra coisa em qualquer sistema ao qual tenha acesso SSH.(Bem, se eles instalassem o Mercurial para mim na Universidade, eu poderia!)

Na minha empresa, o grupo de desenvolvimento pretende usar o Subversion para praticamente todos os documentos eletrônicos.Isso depende da capacidade de “bloquear” arquivos que não podem ser mesclados, como documentos do Excel.O SVN fornece o recurso "requires-lock" e o fluxo de trabalho de obtenção, modificação e confirmação é razoavelmente simples.

Os engenheiros de software estão a bordo, mas há alguma resistência por parte dos engenheiros mecânicos.Eles querem usar os recursos de edição colaborativa simultânea do Excel, por exemplo.Eles não se adaptaram ao fluxo de trabalho de obtenção, modificação e confirmação.

O TortoiseSVN permite comparar documentos do Word, o que eu acho extremamente útil.Aparentemente, ele também suporta mesclagem, embora eu tenha sido covarde demais para experimentar esse recurso ...

Eu gostaria de considerar seriamente um DVCS como o git ou o Mercurial.Mas, a menos que possa bloquear o formato de arquivo binário (ou seja,não mescláveis) (tornando-se assim mais como um modelo centralizado para tais arquivos) e/ou mesclar os formatos de arquivo binários que usamos, isso não se encaixará no uso da minha empresa.

Eu só queria que todas as empresas de software fornecessem boas ferramentas de comparação e mesclagem para seus formatos de documentos proprietários.Isso aumentaria o valor dos sistemas de controle de versão para formatos de documentos proprietários.

Eu uso o SVN para verificar alterações nos arquivos de configuração do Asterisk VOIP Server.Tenho um repositório com uma pasta correspondente a cada um dos vários servidores.Essa pasta contém todo o conteúdo de /etc/asterisk.

Eu usei o Subversion para tudo, desde controle de origem, ambientes de construção, scripts de instalação e todas essas vantagens de desenvolvimento.Também configurei um repositório para usuários não técnicos para arquivos binários, neste caso documentos antigos do Excel e do Word.Funcionou bem, considerando que perdemos qualquer funcionalidade de mesclagem.Mas permitiu que todos os nossos usuários obtivessem uma tonelada de informações que, em sua maioria, eram editadas por duas ou três pessoas com bastante facilidade.E com instruções simples sobre como atualizar antes de fazer qualquer edição (bloquear se necessário) e depois lidar com conflitos (verificar o que você atualizou e depois excluir sua cópia e realizar uma atualização), eles conseguiram lidar muito bem com o repositório, embora eu não tenha certeza se eles realmente gostaram disso.:)

Sim, tenho um diretório de documentos no git.Contém uma lista de tarefas, um calendário e alguns outros documentos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top