2011-02-19 14 views
10

से एक फ़ाइल प्राप्त करें क्या जावा में रिमोट मर्कुरियल रिपोजिटरी से प्रोग्रामेटिक रूप से एक फ़ाइल डाउनलोड करने का कोई तरीका है? मैंने very similar question regarding git से पूछा है; अब मैं उम्मीद कर रहा हूं कि मैं कुछ भी कर सकता हूं।रिमोट मर्कुरियल रिपोजिटरी

  1. मैं एक समाधान पसंद करता हूं जो जितना संभव हो सके बैंडविड्थ के रूप में उपयोग करता है, अधिमानतः केवल उस फ़ाइल को डाउनलोड करता है। मुझे रिपॉजिटरी ब्राउज़ करने की आवश्यकता नहीं है, मेरे पास पहले से ही फ़ाइल का पथ है।
  2. मैं फ़ाइल के इतिहास से चिंतित नहीं हूं, मुझे केवल इसका नवीनतम संस्करण चाहिए।
  3. एक समाधान जो केवल आउटपुट में फ़ाइल को प्रिंट करता है, वह भी बहुत अच्छा है - निश्चित रूप से - फ़ाइल को डिस्क में सहेजना नहीं है, मैं इसे स्वयं कर सकता हूं।
  4. मैं एक समाधान पसंद करता हूं जो अन्य अनुप्रयोगों पर निर्भर नहीं है (उदाहरण के लिए मशीन पर एक मर्कुरियल क्लाइंट की स्थापना)। एक जावा लाइब्रेरी जिसमें एक Mercurial क्लाइंट कार्यान्वयन शामिल है इष्टतम होगा। हालांकि, अगर कोई दूसरा रास्ता नहीं है तो मैं खुशी से hg का आह्वान करूंगा।

Mercurial कैसे काम करता है इसके बारे में मैं समझता हूं - केवल स्थानीय भंडारों के खिलाफ काम करने की इजाजत देता है - यह समस्याग्रस्त साबित हो सकता है; लेकिन जैसा कि मैं इसी तरह के गिट एससीएम के साथ ऐसा करने में सक्षम था, मुझे उम्मीद है कि मर्कुरियल के लिए भी एक समाधान है।

उत्तर

10

mercurial wire protocol में रिमोट रिपोजिटरी से एक फ़ाइल पढ़ने के लिए कोई आदेश नहीं है। यही कारण है कि hg कमांड लाइन क्लाइंट यह भी नहीं कर सकता है। विचार यह है कि आपको हमेशा ऐसी चीजों के लिए स्थानीय क्लोन बनाना चाहिए।

हालांकि, Mercurial के लिए विभिन्न वेब इंटरफेस आमतौर पर फ़ाइल सामग्री प्राप्त करने का एक तरीका है। उदाहरण के लिए, bitbucket खजाने के लिए URL ऐसा दिखाई देगा:

http://bitbucket.org/<user>/<project>/raw/<revision>/<filename> 

hg serve वेब इंटरफेस के लिए, URL ऐसा दिखाई देगा:

http://<host>:<port>/raw-file/<revision>/<filename> 
+3

इसके अलावा आप bitbucket पर निजी रेपो के उपयोग करने की जरूरत है, वे एक API है: http://confluence.atlassian.com/display/BITBUCKET/Using+the+ बिटबकेट + आरईएसटी + एपीआई – dave

+2

'एचजी सर्वर' वेब इंटरफ़ेस के लिए, आपको संशोधन को जानने की आवश्यकता नहीं है। आप संशोधन संख्या के बजाय 'tip' का उपयोग कर सकते हैं। – Benjamin

2

Bitbucket REST API आप इस के लिए चाहते हैं उपकरण है। से

https://api.bitbucket/1.0/repositories/{USER}/{REPO-NAME}/raw/tip/{PATH/TO/FILE}

उदाहरण उनके docs:

बजाय JSON के रूप में स्वरूपित फ़ाइल हो रही है, तो आप कच्चे फ़ाइल प्राप्त कर सकते हैं:

$ कर्ल Django से https://api.bitbucket.org/1.0/repositories/jespern/django-piston/raw/tip/piston/utils.py आयात समय .http आयात HttpResponseNotAllowed, HttpResponseForbidden, HttpResponse, HttpResponseBadRequestसेdjango.core ....

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