2009-12-25 14 views
25

0.9.4 के रूप में, एक प्रतीकात्मक लिंक जोड़ते समय Mercurial लिंक का ट्रैक रखता है, न कि फ़ाइल या निर्देशिकाओं को इंगित करता है। हालांकि, ऐसे मामले हैं जब प्रतीकात्मक लिंक द्वारा इंगित फ़ाइलों का ट्रैक रखना वांछनीय है।Mercurial में निर्देशिका के रूप में एक प्रतीकात्मक लिंक का इलाज कैसे करें?

मैरिकुरियल को नियमित निर्देशिका के रूप में एक निर्देशिका में प्रतीकात्मक लिंक का इलाज करने के लिए कैसे मजबूर कर सकता हूं?

+3

क्या आपने सॉफ्ट लिंक की बजाय कड़ी मेहनत की है? – miku

+1

मै मैक पर हूं, और मुझे हार्ड लिंक बनाने के लिए 'ln' नहीं मिल रहा है। यह शिकायत करता है कि लक्ष्य एक निर्देशिका है। – dzhelil

+2

मेरी लिनक्स मशीन पर 'ls (1) 'से:' -d', '-F',' --directory': सुपरसुर को हार्ड लिंक निर्देशिकाओं का प्रयास करने की अनुमति दें (नोट: शायद सिस्टम प्रतिबंधों के कारण विफल हो जाएगा सुपरसियर के लिए)। –

उत्तर

24

linux के अंतर्गत आप उपयोग कर सकते हैं

mount --bind sourcepath targetpath 
बजाय सांकेतिक लिंक और तेज सामान्य निर्देशिका के रूप में लक्ष्य व्यवहार करेगा की

(मर्क्युरियल 1.3.1 के साथ openSUSE 11.2 पर परीक्षण किया, और RHEL6 पर)।

विकल्प वाक्य रचना, शामिल करने के लिए उत्तरदायी /etc/fstab में,

mount -o bind sourcepath targetpath 

fstab प्रविष्टि है, तो

sourcepath targetpath none defaults,bind 0 0 
+0

मैंने पुष्टि की है कि रड स्टील द्वारा अनुशंसित सिडो माउंट - बाइंड सोर्सपाथ लक्ष्यपैथ लिनक्स पर मेरे लिए काम करता है (उबंटू 10.04 मर्कुरियल 1.4.3 के साथ)। – pvillela

+0

ओएस एक्स उपयोगकर्ताओं के लिए कोई चाल? – stigi

5

मुझे नहीं लगता कि जब आप निर्देशिकाओं के साथ काम कर रहे हों तो ऐसा करने का कोई तरीका है।

यदि आप Mercurial 1.3 या बाद में काम कर रहे हैं तो आप नए सबप्रो समर्थन का उपयोग करने का प्रयास कर सकते हैं, जो आपको स्थानीय डिस्क पर इसके पीछे एक रेपो ट्रैक स्टफ देगा, लेकिन यह एक लिंक के रूप में निर्बाध नहीं होगा किया गया।

5

मुझे यह भी आश्चर्य हुआ जब मुझे यह भी मिला, लेकिन ऐसा लगता है कि Mercurial team don't want to change for security reasons है।

मैं अपने मेकफ़ाइल से, निर्देशिका करने से पहले निर्देशिका की स्थानीय प्रति अपडेट करने के लिए rsync का उपयोग करके इसे प्राप्त करने की योजना बना रहा हूं। यह एक अच्छा समाधान नहीं है लेकिन मेरी निर्देशिका काफी छोटी है इसलिए यह ठीक होना चाहिए।

2

बस एक जुनून स्टील उत्तम जवाब पर अनुवर्ती कार्रवाई (--bind माउंट) है :

अपने माउंट को बूट पर तैयार करने के लिए (चूंकि माउंट रीबूट नहीं बचते हैं), आपके/etc/fstabs में डाल:

/paht/to/स्रोत/path// लक्ष्य बाँध चूक, बाँध 0 0

बस अपने स्रोत माउंट किया गया है के बाद यह डाल करने के लिए सुनिश्चित करने के लिए।

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