2009-01-06 14 views
6

से बदली गई फ़ाइलों को निर्यात करता है क्या कोई जानता है कि svn का उपयोग करके केवल दो टैगों से बदली गई फ़ाइलों को कैसे निर्यात किया जाए?एसवीएन निर्यात टैग्स

आइए कहें कि मेरे पास टैग 1.0 है और फिर बाद में ट्रंक में बग ठीक करें। इसके बाद मैं एक नई पैच रिलीज के लिए तैयार हूं इसलिए मैं इसे 1.1 टैग करता हूं। अब मैं टैग 1.0 और 1.1 के बीच बदली गई फ़ाइलों को निर्यात करना चाहता हूं। क्या यह संभव है?

+0

मुझे लगता है कि इस संभाल हैं तुम क्या करने कोशिश कर रहे हैं: [http://stackoverflow.com/questions/42246/subversion-partial-export](http://stac koverflow.com/questions/42246/subversion-partial-export) – Jared

उत्तर

1

svn diff टैग के बीच परिवर्तनों का प्रतिनिधित्व करने वाला एक अंतर बना सकता है। आप पैच उपयोगिता के साथ उस diff लागू कर सकते हैं।

http://svnbook.red-bean.com/en/1.0/re09.html

12

SVN diff --summarize यूआरएल/to/tag1.0 यूआरएल// tag1.1

आपको लगता है कि उन दो टैग के बीच बदल फ़ाइलों की एक सूची दे देंगे करने के लिए। आप एक स्क्रिप्ट में उस सूची को पार्स और

या

SVN बिल्ली यूआरएल या तो

SVN निर्यात यूआरएल/to/फ़ाइल filepath के साथ व्यक्तिगत रूप से प्रत्येक फ़ाइल निर्यात करने में सक्षम होना चाहिए/to/फ़ाइल> फ़ाइल

आप TortoiseSVN उपयोग कर रहे हैं:

  • भंडार ब्राउज़र खोलते हैं, tag1.0 पर ब्राउज़ करें, राइट क्लिक करें, "तुलना के लिए चिह्न" चुनें
  • tag1.1 पर ब्राउज़ करें, चुनें
  • फ़ाइल diff संवाद में
  • "यूआरएल की तुलना" राइट क्लिक करें, सभी फ़ाइलों का चयन/फ़ोल्डर कि टैग (Ctrl + A)
  • राइट क्लिक करें के बीच बदल गया है, चुनें " निर्यात ... "
+0

जब मैं सभी निर्यात का चयन नहीं करता हूं, यह केवल एक फ़ाइल के लिए काम करता है: -/ – Sasha

1

हमें इस तरह कुछ चाहिए। तो मैंने एक छोटा जावा उपकरण लिखा।

आशा है कि यह किसी के लिए उपयोगी होता है: github svn-diff-export

9

यह TortoiseSVN के लिए my solution है:

  • ओपन रेपो ब्राउज़र।
  • राइट क्लिक करें tag1 और "मार्क तुलना के लिए"
  • राइट क्लिक करें tag2 चयन करें और "यूआरएल तुलना करें"
  • चयन
  • राइट क्लिक करें और "निर्यात चयन करने के लिए फ़ाइलों की सूची में सभी (Ctrl + A) का चयन करें ... "
  • एक गंतव्य निर्देशिका और ठीक प्रेस

क्या निर्यात समाप्त होता है सभी फाइलों को आप इसे (लागू करने डिफ के आसपास खिलवाड़ अवगत कराने के लिए एक मौजूदा निर्यात के शीर्ष पर लिखने की ज़रूरत है दर्ज करें)। उपयोगी, उदाहरण के लिए, एफ़टीपी द्वारा वेबसाइटों को अद्यतन करने के लिए।

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

+0

दुर्भाग्य से, यह निर्देशिका संरचना नहीं रखेगा :( – gbjbaanb

+0

@gbjbaanb हां ऐसा होता है। बस टीएसवीएन 1.6.7 के साथ परीक्षण किया। –

+0

वाह, यह करता है - मैंने मूल रूप से संशोधन के लिए लॉग में फ़ाइलों की सूची का उपयोग किया है, उन सभी का चयन करें और 'निर्यात का चयन करें ...' उन्हें एक ही निर्देशिका के रूप में लिखता है। मुझे आश्चर्य है कि यह डिजाइन द्वारा एक विशेषता है। – gbjbaanb

6
  1. TortoiseSVN का उपयोग करना, अपने काम फ़ोल्डर पर राइट क्लिक करें और TortoiseSVN मेनू से चयन करें "शो के लिए लॉग"।

  2. (या आप यानी # 178 रिलीज़ करना चाहते जो कुछ संशोधन) ताकि दोनों पुराने और नए संशोधन कि पिछले प्रकाशित किया गया था (# 85 इस उदाहरण में)

  3. Ctrl + प्रमुख संशोधन क्लिक करें क्लिक करें संशोधन को हाइलाइट किया गया है।

  4. किसी भी हाइलाइट किए गए संशोधन पर राइट-क्लिक करें और "संशोधन की तुलना करें" का चयन करें। यह एक संवाद विंडो खुल जाएगा जो सभी नई/संशोधित फ़ाइलों को सूचीबद्ध करेगी। (Ctrl + क) तो हाइलाइट किए गए फ़ाइलों पर राइट क्लिक करें और "निर्यात चयन करने के लिए ..."

स्रोत का चयन

  • इस सूची से सभी फाइलों का चयन करें: http://www.verysimple.com/blog/2007/09/06/using-tortoisesvn-to-export-only-newmodified-files/

  • 0

    के आधार पर स्टीफन के विचार:

    REV=123456 
    URL=https://... 
    BASEDIR=some_dir 
    svn diff --summarize -c $REV $URL | while read A B; do 
        svn cat -r $REV $B > ${B##*$BASEDIR} 
    done 
    
    संबंधित मुद्दे