मुझे भी यह समस्या हो रही है, जो अभी भी मेंडेली में तय नहीं है। क्यू के महान सुझाव के आधार पर, मैंने अपने मुद्दे को एमएसीएस का उपयोग करके हल किया, लेकिन बैच मोड में, अच्छी तरह से मुझे शेल स्क्रिप्ट में समाधान लपेटने की अनुमति दी।
सबसे पहले, मैंने निम्नलिखित एमएसीएस लिस्प स्क्रिप्ट बनाई (चलो इसे bibsort.el कहते हैं):
( defun bibsort()
( bibtex-sort-buffer )
( save-buffer )
)
यह कुंजी नाम से किसी भी bibtex फ़ाइल को सॉर्ट करता है और फिर उसे सहेजता है। आप कमांड लाइन से स्क्रिप्ट को बैच मोड में कॉल कर सकते हैं। मैं प्रत्येक बाइबेट फ़ाइल के लिए इसे कॉल करने के लिए एक शेल स्क्रिप्ट लिखने में आगे बढ़ गया, जिसे मेंडली ने (नए संदर्भों के साथ या बिना) पुन: व्यवस्थित किया था, "git diff filename " से रिटर्न कोड की जाँच करके (यह लिस्प कोड को अनावश्यक रूप से नहीं चलाकर समय बचाता है। फ़ाइलें जो नहीं बदली हैं)।
यहाँ शेल स्क्रिप्ट है (चलो कल्पना से इसे bibsort.sh कहते हैं), जो मानता है कि दोनों बाइबेट फ़ाइलें और लिस्प स्क्रिप्ट वर्तमान निर्देशिका में हैं:
#!/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
प्रत्येक कार्य करने से पहले इसे बस चलाएं (यदि आवश्यक हो तो फ़ाइल अनुमति देने के बाद):
chmod a+x bibsort.sh
./bibsort.sh
git commit ...
यह मेंडली द्वारा जोड़ी गई अतिरिक्त गैर-बिबटेक्स लाइनों को नहीं छूएगा, और एमएसीएस के साथ किसी भी यूनिक्स / लिनक्स इंस्टॉलेशन पर काम करना चाहिए। यह विंडोज में जीआईटी कंसोल (जो मैं उपयोग कर रहा हूं) पर भी काम करता है, लेकिन आपको अलग से एमएसीडब्ल्यू का निर्माण करना होगा।
मेरे लिए, जीआईटी कमिटमेंट अब सुरुचिपूर्ण ढंग से और आर्थिक रूप से काम करता है। उम्मीद है की यह मदद करेगा ...