Temos um projeto sob controle de revisão git com apenas uma única ramificação. Precisamos remover cada nova palavra separada por espaço em branco que foi introduzida pela primeira vez em um determinado arquivo por um autor específico.
Para esclarecer, neste momento, temos o HEAD
verificado. Agora, em um arquivo de exemplo chamado introduction.tex
, se houver uma frase "Enlargement of the user-base is beneficial ..."
, eu gostaria de um script bash com comandos git adequados que:
Enlargement
). Talvez usando um regex como \b[A-za-z+]\b
para detecção de palavras. johndoe
, remova a palavra sob consideração do arquivo. É importante ignorar palavras-chave comuns como a, an, the, of, for, if, then, but, else, not, any, or, nor
. Então, proponho manter o comprimento mínimo em 5 characters
na string para que a palavra se qualifique para remoção
Basicamente, a ideia é eliminar ou reverter contribuições de tipo inglês feitas por um autor em particular. Como isso pode ser feito?
Esta questão é para produzir um relatório de diferenças depois de remover as contribuições do autor. Após a remoção do texto (ou seja, depois que eu tiver a resposta para essa pergunta), pretendo usar um script perl padrão, mas incrível latexdiff
que pode detectar essas remoções de palavras (ou, na verdade, qualquer outra diferença entre os dois arquivos latex
) e gerar um PDF composto, destacando as palavras removidas com rasuras vermelhas. Tudo o que preciso fazer é identificar e remover as palavras originalmente introduzidas pelo outro autor (ou seja, minha pergunta principal aqui). Portanto, todas as sentenças no pdf composto devem permanecer coerentes sem perda de significado, mas continuarão a reter as palavras removidas ainda no mesmo local, mas, além disso, simplesmente terão marcas de tachas vermelhas sobre elas.
Isso está em um contexto acadêmico. O projeto git é um repositório LaTeX de um manuscrito. Eu estou em uma disputa de autoria com um co-autor de um artigo que, portanto, não foi submetido a nenhum periódico. Somos ambos estudantes de doutoramento. Para reivindicar cada um dos nossos direitos autorais das palavras para uso em nossas respectivas teses, nosso orientador de PhD solicitou a apresentação de nossas respectivas alegações sobre as palavras introduzidas no manuscrito por cada um de nós, para reutilização em nossas teses e evitar acusações de plágio. Nós dois nos comprometemos com o mesmo repo e agora estou pensando em aproveitar o poder de git
e shell
, juntamente com git-grep
, sed
, awk
, perl
ou o que for para me ajudar a reivindicar o correto palavras eu contribuí com integridade. Sua ajuda será muito apreciada.
git log -S --oneline 'enlargement' -- introduction.tex
mostra corretamente a lista de confirmações que tocam nessa palavra que diferencia maiúsculas de minúsculas, ou seja, enlargement
nesse caso. O commit mais antigo da lista ajudará a identificar o autor responsável. Estamos simplesmente procurando as "grandes palavras técnicas" que explicam primeiro um conceito. Eu já estou fazendo isso manualmente com o comando starter git. Mas eu preciso automatizar isso porque existem cerca de 10 desses arquivos. Obviamente, não quero fazer isso manualmente para cada palavra de 5 ou mais caracteres em todos os arquivos.