Um sistema de controle de versão (VCS) como git atenderia a maioria (todos?) de suas necessidades , ao custo de ser mais técnico e provavelmente exigindo o uso de linha de comando para algumas operações. Dito isso, há boas GUIs para o VCS mais popular em todos os principais sistemas operacionais.
Enfrentando seus pontos:
- Você pode 'verificar' a versão mais recente de todos os arquivos para trabalhar e, em seguida, 'empurrar' as alterações de volta para o armazenamento principal.
- O envio automático de alterações de volta seria muito fácil de configurar com alguns scripts.
- Você escolhe quais alterações manter. Qualquer erro pode ser revertido.
- Você pode remover facilmente os arquivos do estado atual dos arquivos e desfazer isso se estiver com erro.
- É possível remover o histórico do controle de versão, mas esse seria um ponto fraco nessa solução (e provavelmente a parte mais técnica).
- git rastreia arquivos por conteúdo. Você executa movimentos e renomeia com suas ferramentas sem perder o histórico dos arquivos.
- O controle de versão permite que qualquer versão de qualquer arquivo seja facilmente acessada.
Alguns programas para verificar: git home page e em StackOverflow , mercurial / hg . Muitos recursos estão disponíveis na web sobre o assunto, embora muitos deles sejam destinados a programadores.
PS - Eu sei que esta é uma solução louca :)