Sou acadêmico e adoro escrever o máximo possível no Emacs. Uma coisa importante que me falta é a capacidade de revisar facilmente as alterações que fiz em um arquivo de texto ao longo do tempo.
Os recursos de rastreamento nos artigos da Wikipedia ou no Google Documents são da mesma maneira que estou procurando. Eu brinquei com sistemas de controle de versão como o git porque eles parecem ser bem suportados pelo Emacs, mas os achei difíceis de usar e muito mais complexos do que o necessário. Registrar repositórios, fazer check-in e check-out, tudo isso era problemático.
Suponho que não existem pacotes por aí que ofereçam a funcionalidade que estou procurando de uma maneira relativamente amigável.
version-control
writing
Brian Z
fonte
fonte
git
emagit
- github.com/magit/magit - já que você já brincou um pouco com ele. Você provavelmente desejará se familiarizar com as opções da linha de comando, para entender melhor o quemagit
está fazendo. O Emacs não é para não-codificadores, mas você já está por aqui há tempo suficiente para não ter medo dele - :) Você também pode tentar brincar comgist
: github.com/defunkt/gist.elvc-
grupo de comandos é simplificar o processo de uso de VCSs. Infelizmente, eles não são tão intuitivos quanto permitem que usuários sem experiência façam um bom uso deles. Por outro lado, sistemas como os que você menciona são muito limitantes, de modo que se desenvolve rapidamente demandas que eles não podem satisfazer. gnu.org/software/emacs/manual/html_node/emacs/… existe um mecanismo simplista de manter backups, mas devido ao exposto acima, eu recomendo aprender a usar alguns VCS.git
/magit
para controle de versão dos meus trabalhos. Parece intimidador começar, mas a) você não precisa aprender tudo de uma vez eb) é agradável de usar depois de superar a curva de aprendizado inicial. Um bom fluxo de trabalho também ajuda a disciplinar suas tarefas de escrita, pois incentiva você a anotar o que está fazendo - o que é uma ótima maneira de obter uma linha do tempo da evolução do projeto de escrita.Respostas:
O problema com os sistemas de controle de versão existentes não é tanto sua complexidade; é o fato de haver tanta informação por aí que pode ser muito difícil para iniciantes ver a floresta para as árvores (ou seja, descobrir o que fazem e não precisam aprender quando estão apenas começando) )
Este post será focado
git
e descreverá como controlá-lo no Emacs usando um pacote complementar chamadomagit
. Sim ,git
é complexo, mas você não precisa aprender muito para usá-lo produtivamente para a finalidade que você descreve.Suponho que você tenha
git
instalado (se não o tiver, obtenha-o aqui ) e que não deseja deixar o Emacs.Instalando
magit
magit
é umgit
front-end para o Emacs. Está disponível no MELPA e você pode instalá-lo via:M-x
package-install
RETmagit
RETCom a chance de você não ter ativado o MELPA em sua configuração, você pode encontrar instruções sobre como fazer isso aqui .
Configurando um Repositório
Digamos que você tenha uma pasta chamada
~/writing
no diretório inicial que contém um ou mais documentos que você deseja colocar sob controle de versão.~/writing
RETshell
RETgit init
e clique RET.É isso aí. Agora você tem um
git
repositório. Não há necessidade de "registrá-lo" em nenhum lugar.git
é um sistema de controle de versão distribuído ; não requer um servidor remoto para rastrear alterações.Verificando o status do seu repositório
magit-status
RET.Você pode pensar no buffer que aparece como seu "painel de controle" para trabalhar com seu repositório. Para um novo repositório, é algo parecido com isto:
Você pode navegar entre diferentes seções desse buffer usando n(
magit-goto-next-section
) e p(magit-goto-previous-section
).Você pode atualizar o buffer pressionando g(
magit-refresh
).Observe que você pode ativar o buffer de status de qualquer arquivo ou diretório que pertença ao repositório configurado anteriormente.
Adicionando arquivos
Como você pode ver na captura de tela, existem três arquivos no repositório que
git
não estão rastreando no momento. Para dizergit
para começar a rastrear um arquivo, você precisa prepará- lo: Com o ponto no arquivo que você deseja adicionar, pressione s. O buffer de status ficará assim:Cometer
Depois de preparar um ou mais arquivos, você pode confirmá- los pressionando c c. Isso exibirá um buffer parecido com este:
Digite sua mensagem de confirmação na parte superior e pressione C-c C-cpara finalizar a confirmação. (Para cancelar, pressione C-c C-k.)
O buffer de status ficará assim:
Mudanças de preparação
Se você fizer alterações em um arquivo rastreado, elas serão listadas em uma seção separada ("Alterações em etapas") no buffer de status:
Para revisar as alterações feitas no arquivo, navegue até a linha que diz
Modified file-1.txt
e pressione TAB:Para organizar essas alterações, pressione s:
Visualizando confirmações anteriores
Por fim, se você quiser revisar confirmações anteriores, pressione l l(são dois L minúsculos):
Como de costume, você pode navegar no buffer que acompanha ne p. O Magit mostrará as alterações associadas a confirmações individuais listadas nesse buffer em uma janela separada.
Sumário
Do shell:
git init
: Inicializargit
Repositório no Diretório AtualDe qualquer arquivo ou diretório associado a um
git
repositório:magit-status
RETNo buffer de status:
s para adicionar novos arquivos ou alterações de estágio
c c para confirmar mudanças em etapas
É isso aí. :)
fonte
git init
do shell. Se você ligar paraM-x magit-status
algum lugar fora de qualquer repositório git, ele oferecerá a configuração de um. (Mas você precisará chamá-lo novamente para ativar o buffer de status depois de concluir a instalação).magit-diff-refine-hunk
para obter o comportamento que deseja. Adicione(setq magit-diff-refine-hunk t)
ou(setq magit-diff-refine-hunk 'all)
ao seu arquivo init. Você pode fazerC-h v
magit-diff-refine-hunk
RET
para obter mais informações sobre o significado das diferentes configurações.Além de
magit
(como a resposta de @ itsjeyd demonstra habilmente), você também pode tentargit-timemachine
, que fornece facilidades para um ciclo rápido nas versões mais antigas de um arquivo sobgit
controle de versão. De acordo com a página do github, as seguintes combinações de teclas padrão fornecem uma idéia do que você pode fazer:p
Visite a versão histórica anteriorn
Visite a próxima versão históricaw
Copie o hash abreviado da versão histórica atualW
Copie o hash completo da versão histórica atualq
Saia da máquina do tempo.fonte
Eu suspeito que você achará o Modo de backup e / ou o Walker de backup muito interessante.
Ambos visam alavancar os mecanismos de backup existentes no Emacs e fornecem melhor acesso e visibilidade do seu histórico de arquivos, sem a necessidade de um VCS adicional.
fonte
Como mencionado, uma maneira simples de ter diferentes versões de um arquivo é o sistema de backup Emacs.
Isso usará um diretório dedicado para backups numerados, que nunca serão excluídos automaticamente. Em seguida, você pode usar C-u C-x C-spara criar outra versão a qualquer momento.
Embora, eu acho, não exista uma interface fácil e pronta para usar, por exemplo, para diferenciar essas versões. Portanto, você teria que abrir manualmente um ou dois desses backups e usá
ediff-buffers
-los e / ou o buffer original.fonte
m
o ponto de movimentação para o outro arquivo e pressione=
).Ainda não tive a oportunidade de usar esta solução, mas você também pode considerar o flashbake de Cory Doctorow e Thomas Gideon . Aqui está o que Doctorow tem a dizer sobre isso :
Dito isto, eu nunca tive a oportunidade de testá-lo, pois acabei escrevendo muitas coisas no modo organizacional e estava programando bastante, e ... bem ... eu meio que fiquei melhor usando
magit
, e no final, eu meio que ... não precisava usá-lo.De qualquer forma, essa solução foi destinada a escritores que trabalham em projetos não técnicos. Você pode achar que ele pode atender às suas necessidades.
fonte
Embora não esteja absolutamente relacionado
emacs
, você ainda pode salvar seus arquivos de texto no Dropbox e, se for um usuário profissional, poderá usar o histórico de versão estendido . (Se você deseja criptografia, consulte SparkleShare .)Depois, há o flashbake, que é um pouco automatizado ( aqui está um tutorial ).
Também foi perguntado em outro lugar também , cujas respostas você pode achar úteis.
fonte
Você pode usar o Dropbox. Torna a versão revisável do seu arquivo toda vez que você pressiona Cx Cs. Para criptografia dos meus arquivos de texto, eu uso o GNU Privacy Guard, compatível com o Emacs.
fonte