Ben de Mendeley'de hala düzeltilmemiş olan bu sorunu yaşıyorum. Que que'nin büyük önerisine dayanarak, sorunumu emacs kullanarak çözdüm, ancak toplu modda, güzel bir şekilde bir kabuk betiğinde çözümü sarmama izin verdim.
Öncelikle, aşağıdaki emacs lisp komut dosyasını oluşturdum (buna bibsort.el diyelim):
( defun bibsort()
( bibtex-sort-buffer )
( save-buffer )
)
Bu, herhangi bir bibtex dosyasını anahtar adına göre sıralar ve kaydeder. Komut satırından komut dosyasını toplu modda çağırabilirsiniz. Ben dönüş kodu kontrol ederek, Mendeley (veya taze referanslar olmaksızın) yeniden sıralanmış olan her bibtex dosyası için aramak bir kabuk yazılı olarak ileri gitti "diff dosya adı " (bu gereksiz üzerine lisp kodu çalışmıyor zamandan tasarruf değişmeyen dosyalar).
İşte hem bibtex dosyalarının hem de lisp komut dosyasının geçerli dizinde olduğunu varsayan kabuk betiği (buna yaratıcı bir şekilde bibsort.sh diyelim):
#!/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
Her git işleminden önce çalıştırın (gerekirse dosya izinlerini ayarladıktan sonra):
chmod a+x bibsort.sh
./bibsort.sh
git commit ...
Mendeley tarafından eklenen ekstra bibtex olmayan satırlara dokunmaz ve emac'larla herhangi bir Unix / Linux kurulumunda çalışmalıdır. Ayrıca Windows'taki GIT konsolunda da çalışır (ki ben kullanıyorum), ancak MINGW emacs derlemesini ayrı olarak yüklemeniz gerekir.
Benim için git artık zarif ve ekonomik bir şekilde çalışıyor. Bu yardımcı olur umarım ...