2009-04-22 20 views
5

मैं SVN क्षेत्र में एक लंबे समय के शिविर के बाद बाजार का उपयोग शुरू किया। मुझे सीवी के साथ भी पिछले अनुभव था, और मैंने कभी-कभी टैग का इस्तेमाल किया।बाजार में टैग का क्या मतलब है?

SVN के साथ, एक बार आप एक संस्करण जारी, आप अपने ट्रंक के एक SVN प्रतिलिपि टैग में करते हैं, उदाहरण के SVN ट्रंक टैग नकल के लिए/1.2.0। बाजार में मैंने एक ही भंडार संरचना बनाई, लेकिन बीजीआर प्रतिलिपि विकल्प की अनुपस्थिति और बीजीआर टैग की उपस्थिति ने मुझे विचार किया।

तथ्य यह है कि मैं टैग या तो उपयोग करने के लिए मुश्किल है, या बेकार लगता है। अगर मैं टैग का उपयोग, मैं मूल रूप से केवल निर्देशिका के रूप में मेरे ट्रंक है, और जब मैं एक मील का पत्थर तक पहुँचने, मैं यह टैग करता है। जब मैं एक नया मील का पत्थर पहुंचा तो मैं फिर से विकसित और टैग करना जारी रखता हूं।

  • (SVN की तरह दृष्टिकोण के साथ: भिन्नता --brief -r) रिकर्सिवली एक पुराने संस्करण के खिलाफ एक नया संस्करण की तुलना: यह निम्न कार्य पेचीदा हो
  • एक पुराने संस्करण bugfixing, और साथ नया संस्करण बनाने के अपने पैचवर्जन बढ़ गया (svn-like दृष्टिकोण के साथ: svn copy 2.0.0 2.0.1, फिर 2.0.1 पर फिक्स जोड़ें और इसे प्रतिबद्ध करें)
  • जो संस्करण आप इसे देखना चाहते हैं उसे प्राप्त करने के बिना (यदि आप चेक आउट करते हैं svn-like में पूरा पेड़, आपके पास सभी संस्करण और शाखाएं हैं, और आप इसे केवल एक बार करते हैं)

नतीजतन, मैं bzr में एक ही svn repo संरचना का उपयोग करता हूं, और मैं हर बार ट्रंक की भौतिक प्रतिलिपि करता हूं। इसका मतलब है कि मुझे इस व्यवस्था में bzr टैग कमांड का कोई वास्तविक उपयोग नहीं दिख रहा है। मुझे पूरे रेपो संशोधन को संस्करण संख्या के साथ क्यों टैग करना चाहिए, यदि इसमें प्रत्येक संशोधन के लिए उनमें से सभी शामिल हैं?

क्या कोई मुझे बता सकता है कि मैं बीजेआर रेपो के लिए टैग का उपयोग करने और समझने में क्या गलत कर रहा हूं?


संपादित

तो जैसा कि जहाँ तक मैं देख अवधारणा अलग BzR शाखाओं (स्वतंत्र शाखाओं, BzR शाखा के माध्यम से ट्रंक से आ रहा है) प्रत्येक रिहाई के लिए है। यह svn की तरह है, बस आप रूट निर्देशिका को भंडार में नहीं डालते हैं। मैं अभी भी वास्तव में इस तथ्य के अलावा, टैग के लिए किसी विशेष कारण नहीं दिख रहा है, आप कहते हैं कि foo-1.0.0 foo-1.0.1 foo-2.0.0 foo-2.1.0 ट्रंक

अगर

और मानते हुए कि मैं हमेशा ब्रांचिंग से पहले रिलीज करता हूं, ट्रंक के पास उन सभी के लिए टैग होंगे, जबकि foo-2.0.0 में इसके टैग्स के बीच foo-1.0.0 होगा, लेकिन foo-1.0.1 नहीं होगा क्योंकि यह ब्रांच किया गया था foo-1.0.0।

मैं अभी भी वास्तव में होने और टैग का उपयोग के लिए की जरूरत नहीं दिख रहा। मेरा टैग निर्देशिका नाम में निहित है जिसे मैं उस शाखा के लिए चुनता हूं। मुझे वास्तव में किसी विशेष रिलीज नंबर में दिलचस्पी नहीं है, मुझे बस दिलचस्पी है कि यह एक विशिष्ट निर्देशिका में है।

उत्तर

12

BzR में टैग क्या हैं देख लिया?

टैग किसी विशेष संशोधन के लिए हैंडल को याद रखना एक आसान है। बल्कि [email protected] याद है, या 19721 revno के प्रयास से, आप अपना टैग का उल्लेख कर सकते हैं:

bzr export -r tag:foo-1.0.0.0 release-foo-1.0.0.0.tar.gz trunk/ 

मैं BzR में रिलीज का प्रबंधन कैसे कर सकते हैं?

ऐसा लगता है जैसे कि आप विकास के अलग-अलग पंक्तियों के रूप में अपने रिलीज के इलाज कर रहे हैं (उर्फ: शाखाओं), तो मैं, अपने ट्रंक टैगिंग की सिफारिश करेंगे तो आप जानते हैं कि आप कहां शाखाओं से और अलग रिलीज़ शाखाओं बनाने:

bzr tag -r 1234 -d trunk/ foo-1.0.0.0 
bzr branch -r 1234 trunk/ release-1.x 

जब आप 1.x रिलीज के लिए अपने bugfixes करते हैं, तो आप उन्हें रिहाई-1.x शाखा में करते हैं, प्रत्येक बिंदु रिलीज टैगिंग:

bzr tag -r 1255 -d release-1.x/ foo-1.0.0.1 
bzr export -r tag:foo-1.0.0.1 release-foo-1.0.0.1.tar.gz release-1.x/ 

आपका निर्देशिका संरचना कुछ इस तरह दिख सकता है:

fooproj/ 
    release-1.x/ 
    release-2.x/ 
    trunk/ 
+0

हाँ, पर मैं आसानी से याद करने का कोई मतलब देखना एक विशिष्ट संशोधन, अगर मेरे पास इसकी आवश्यकता नहीं है। संशोधन वृद्धिशील हैं, लेकिन उनके पास एकमात्र विशेष तथ्य यह है कि उन्हें समय पर आदेश दिया जाता है। रिलीज में ऑर्डर करना अलग है, क्योंकि 3.0.0 के बाद 2.0.1 अच्छी तरह से रिलीज़ हो सकता है। –

+0

आपके टैग लगभग GUID की तरह दिखते हैं। :) – Luke

+0

हाँ, वे ठंडे 1.0, 2.0, आदि हैं। मुझे महत्वपूर्ण संस्करण खंडों के साथ ले जाया गया है, और जब भी मुझे मौका मिलता है तो मुझे foo का उपयोग करना पसंद है, इसलिए मैंने इसे फेंक दिया। ओ) – vezult

8

ठीक है, मूल रूप से, आप कोशिश करते हैं और SVN निर्देशिका संरचना नकल नहीं करनी चाहिए। मुझे नहीं पता कि एसवीएन के पास ऐसा क्यों है, लेकिन मूल रूप से टैग आपके बीजीआर रिपोजिटरी में एक समय पर एक मार्कर हैं। आप एक टैग के खिलाफ diff करना चाहते हैं, यह

bzr diff -r tag:TAG_NAME 

की तरह किया जा सकता है तो जब भी आप एक रिलीज कर रहे हैं, बस इसे टैग और अपने रास्ते पर हो। कुछ विशिष्ट फ़ोल्डर या किसी चीज़ पर कुछ ले जाने जैसी विशेष बात नहीं है।

मैं आपको उन चीजों के लिए टैग की बजाय अलग शाखाओं का उपयोग शुरू करने की सलाह दूंगा जो आप वापस लेना चाहते हैं, अपने कोड की 2.0.x लाइन कहें, तो आपके पास 2.0.x के लिए एक शाखा होगी और फिर इसमें 2.0.0 और 2.0.1 जैसे टैग।

इसके अलावा, http://bazaar-vcs.org/Specs/Tagging

1

svn में टैग svn शाखाओं की तरह अधिक है। आपने वर्कफ़्लो का वर्णन किया है जो bzr शाखाओं के लिए अच्छी तरह से मैप किया गया है। टैग आप अपने रिलीज करने के लिए संकेत के साथ एक शाखा है, इसलिए किसी को भी वास्तव में ट्रंक से संस्करण का विमोचन किया प्राप्त कर सकते हैं अनुमति देता है:

BzR शाखा ट्रंक foo-1.0 -r टैग: 1.0

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