2015-06-17 9 views
6

मैं एक ही प्रोग्राम के विभिन्न संस्करणों के साथ Mercurial को पॉप्युलेट करने के लिए एक शानदार तरीका ढूंढ रहा हूं, जिसमें 50 पुराने संस्करणों से फ़ाइल नाम हैं: prog1.py, prog2.py। .. prog50.py प्रत्येक संस्करण के लिए मैं दिनांक और मूल फ़ाइल नाम को रखना चाहता हूं, शायद परिवर्तन टिप्पणी में।फ़ाइल के कई क्रमांकित पुराने संस्करणों को कैसे

मैं Mercurial के लिए नया हूं और उत्तर खोजने के बिना खोज की है।

उत्तर

3

hg commit में -d एक टिप्पणी निर्दिष्ट करने के लिए -m निर्दिष्ट करने के लिए है। निश्चित रूप से

hg init 
copy prog1.py prog.py /y 
hg ci -A prog.py -d 1/1/2015 -m prog1.py 
copy prog2.py prog.py /y 
hg ci -A prog.py -d 1/2/2015 -m prog2.py 
# repeat as needed 
+0

धन्यवाद मार्क। यह काफी व्यावहारिक लग रहा है। अगर कोई और अधिक स्वचालित विधि जानता है तो मैं बस एक दिन या तो इंतजार करूंगा। – stephenbgood

2

एक कर सकते हैं एक छोटे से बैश लिपि में पूरी बात को स्वचालित:

आप stat -c %y ${FILENAME} के माध्यम से एक फ़ाइल के संशोधन दिनांक प्राप्त करते हैं। इस प्रकार यह सोचते हैं कि फ़ाइलों को आदेश दिया जाता है:

hg init 
for i in /path/to/old/versions/*.py do; 
    cp $i . 
    hg ci -d `stat -c %y $i` -m "Import $i" 
done 

मन, प्राकृतिक फ़ाइल नाम छंटाई prog1, prog11 prog12, ... prog19, prog2, prog21 है, .... आप prog1 नाम बदलने के लिए आदि prog01 को सुनिश्चित करने के लिए चाहते हो सकता है सामान्य सॉर्टिंग या उन्हें संसाधित करने से पहले फ़ाइल नामों को सॉर्ट करें, उदाहरण के लिए:

hg init 
for i in `ls -tr /path/to/old/versions/*.py` do; 
    cp /path/to/old/versions/$i . 
    hg ci -d `stat -c %y /path/to/old/versions/$i` -m "Import $i" 
done 
+0

आपके उत्तर के लिए धन्यवाद ग्रह निर्माता जो जानकारीपूर्ण और शायद दूसरों के लिए उपयोगी है। दुर्भाग्यवश केवल 50 फाइलों और विंडोज़ के मामले में, मैं ऊपर दिए गए पहले उत्तर का उपयोग कर रहा हूं। – stephenbgood

संबंधित मुद्दे