Agora, a maioria dos trabalhos é escrita de forma colaborativa, e os colaboradores geralmente estão localizados em lugares diferentes. Eu sempre usei sistemas de controle de versão para meus documentos e código, e também achei o controle de versão crítico para projetos de software colaborativo, mas parece que muitos pesquisadores teoricamente evitam seu uso para escrever trabalhos conjuntos. Para convencer meus colaboradores de que o controle de versão (controle de revisão) é uma boa idéia para trabalhar juntos, parece haver alguns pré-requisitos. Não é possível forçar todos a se preocupar com um conjunto específico de convenções para quebras de linha e parágrafos, ou evitar conversões de tabulação / espaço.
Alguém oferece hospedagem gratuita de pequenos repositórios de documentos compartilhados, com controle de versão compatível com documentos de texto que pode lidar com diferenças de nível de palavras ( não baseadas em linhas)?
Caso contrário, gostaria de receber outras sugestões baseadas na experiência (vamos evitar especulações, por favor).
Eu estava pensando em Git, Subversion, Mercurial, darcs ou Bazaar, configurado para lidar com diferenças no nível de palavras com o wdiff, junto com uma maneira simples de configurar o acesso protegido por chaves públicas (por exemplo, via ssh). No entanto, nenhum dos provedores de controle de versão que eu analisei parece oferecer algo assim. Para a colaboração científica, os recursos "empresariais" enfatizados por muitas dessas empresas não são muito importantes (muitos ramos, integração com o trac, auditoria de terceiros, equipes hierárquicas de projetos). Mas as diferenças no nível das palavras parecem críticas, mas não suportadas. Na minha experiência, com diferenças de nível de linha para arquivos de texto, todos precisam evitar a reformatação de parágrafos e editores que alteram as guias para espaços ou vice-versa causam problemas; também parece haver muitos conflitos de edição espúrios.
Consulte a pergunta relacionada no MO sobre ferramentas para colaboração e questões relacionadas no TeX.SE, sobre controle de versão para documentos LaTeX e pacotes LaTeX para controle de versão . Consulte também o Gráfico de Revisão de Comparação de Hospedagem SVN para obter uma grande lista de provedores de hospedagem, para apenas um dos principais sistemas de controle de versão.
Edit: A resposta de Jukka Suomela à pergunta do TeX.SE "As melhores ferramentas de comparação e mesclagem compatíveis com o LaTeX para subversão " parece ser a melhor sugestão até agora, abordando como interpretar os deltas no nível de uma palavra. Além disso, Jukka explicou como as diferenças entre versões sucessivas no final do repositório são separadas das diferenças no nível do usuário usadas para detecção de conflitos e mesclagem de mudanças. A resposta de Jukka no TeX.SE exclui explicitamente edições e mesclagens simultâneas, baseando-se no token de edição atômica tradicional para evitar conflitos de edição. Esclarecendo (e modificando) minha pergunta original, existe uma maneira de garantir que os conflitos de edição possam ser resolvidos com base na diferença de palavras, e não na diferença de linha? Em outras palavras, podewdiff
ou ferramentas semelhantes sejam integradas à parte de detecção de conflitos das ferramentas de controle de versão, semelhante à maneira como as diferenças de fim de linha e as diferenças de espaço em branco podem ser ignoradas?
fonte
Respostas:
Eu usei o git para colaborar em alguns documentos escritos em látex. Você terá que seguir algumas regras:
*.tex diff=tex
. Isso diferencia a sintaxe tex e gera resultados mais significativos.Você pode usar
git diff --color-words
egitk --color-words
ver diferenças de palavras (consulte também este artigo Diferenças de palavras por palavra no Git sobre como configurar o git para sempre usar o algoritmo de diferenciação de palavras para exibir o log do git diff / git).Para reduzir as mesclagens manuais, posso recomendar o uso de arquivos separados para seções e subseções (dependendo do tamanho do seu documento).
fonte
Sugiro dar uma olhada em:
LaTeX / Redação colaborativa de documentos LaTeX ,
e o artigo relacionado:
Ferramentas para redação colaborativa de documentos científicos LaTeX .
fonte
Eu realmente quero ecoar os outros e sugerir que você se sente e elabore uma boa estratégia SVN. Eu uso o SVN para hospedar toda a minha estrutura de "pesquisa":
É ótimo porque contém tudo e, é claro, fornece uma história. A ressalva é que você precisa de seu próprio servidor. Porém, se você possui alguma máquina Windows existente (ou qualquer outra com que se sinta confortável), é possível instalá-la simplesmente através do VisualSVN Server . Você cria contas apropriadas para os colaboradores e dá a eles acesso a uma área apropriada (por exemplo, talvez o acesso de leitura ao seu arquivo bibtex JabRef e a leitura / gravação em uma área de artigo 'em andamento' compartilhada).
O TortiseSVN pode ser usado como o cliente Windows para interagir com o SVN. Você precisa ter cuidado ao mover / excluir arquivos e copiar pastas (o SVN armazenará metadados dentro de pastas ocultas em cada uma das suas pastas; portanto, você deve executar o comando delete no SVN para se livrar dele, é preciso um pouco de tempo para se acostumar. mas vale o investimento).
Então, ao trabalhar com um colaborador, eles claramente também devem usar o SVN. Mas, novamente, o investimento em aprendizado não é inútil. E, pensando bem, você também pode obtê-lo para ter acesso somente leitura ao arquivo jabref (talvez através do recurso 'externo' no svn).
Dessa forma, com um pouco de reflexão e um pouco de esforço, você pode estar em uma situação em que está editando documentos normalmente, realizando alterações noturnas, atualizando pela manhã e resolvendo todos os conflitos facilmente.
Eu realmente recomendo. Quanto mais pessoas configurarem seus próprios SVNs, melhor, pois isso só melhorará as opções de colaboração no futuro (embora, é claro, seria benéfico se talvez houvesse uma maneira 'padrão' de configurar um repositório científico).
- Edit: De fato, escrevi uma proposta aqui: Estratégia de colaboração científica com LaTeX e SVN . Ele propõe usar o recurso svn externals para permitir uma colaboração fácil entre pessoas com uma configuração semelhante. Deixe-me saber se precisa mudar ou simplesmente não é apropriado.
fonte
Ao ler seu ótimo post e procurar uma solução, eu me deparei com a opção de colorir as alterações no nível das palavras no gitk . O parâmetro gitk parece ser um recurso novo e / ou não documentado, pois o preenchimento automático não o oferece e a página do manual gitk não o lista.
Aqui estão as opções que eu encontrei:
Você pode encontrar várias discussões sobre esse tópico procurando por "diff --color-words" gitk .
Edit:
Isto é o que parece ...
fonte
Eu entendo o problema muito bem. Comecei a usar o Kaleidoscope para diffs com o git. É apenas para Mac, mas suas comparações funcionam melhor que o wdiff, e também possui uma interface e atualizações ao vivo.
fonte