Saya juga mengalami masalah ini, yang masih belum diperbaiki di Mendeley. Berdasarkan saran besar que que, saya memecahkan masalah saya menggunakan emacs, tetapi dalam mode batch, memungkinkan saya untuk membungkus solusi dalam skrip shell.
Pertama, saya membuat skrip emacs lisp berikut (sebut saja bibsort.el):
( defun bibsort()
( bibtex-sort-buffer )
( save-buffer )
)
Ini mengurutkan semua file bibtex dengan nama kunci dan kemudian menyimpannya. Anda dapat memanggil skrip dalam mode batch dari baris perintah. Saya melangkah lebih jauh dalam menulis skrip shell untuk memanggilnya untuk setiap file bibtex yang telah Mendeley ulang (dengan atau tanpa referensi baru), dengan memeriksa kode kembali dari "git diff nama file " (ini menghemat waktu dengan tidak menjalankan kode lisp yang tidak perlu pada file yang belum berubah).
Inilah skrip shell (mari kita sebut bibsort.sh), yang mengasumsikan bahwa kedua file bibtex dan skrip lisp ada di direktori saat ini:
#!/bin/bash
bibliobasher() {
IFS=$( echo -en "\n" )
BIBFILES=*.bib
for bibfile in $BIBFILES
do
git diff --quiet "$bibfile" 2> /dev/null
if [ $? = 1 ]; then
emacs --batch -l bibsort.el "$bibfile" -f bibsort
fi
done
}
bibliobasher
Jalankan saja (setelah mengatur izin file jika perlu) sebelum setiap git melakukan:
chmod a+x bibsort.sh
./bibsort.sh
git commit ...
Itu tidak akan menyentuh garis non-bibtex tambahan yang ditambahkan oleh Mendeley, dan akan bekerja pada instalasi Unix / Linux dengan emacs. Ini juga berfungsi pada konsol GIT di Windows (yang saya gunakan), tetapi Anda harus menginstal build MINGW dari emacs secara terpisah.
Bagi saya, git commit sekarang bekerja dengan elegan dan ekonomis. Semoga ini membantu ...