2009-04-16 9 views
176

कई सबवर्जन ऑपरेशंस के लिए, फ़ाइल या यूआरएल तर्क के अंत में '@' प्रतीक जोड़ना आपको उस फ़ाइल के विशिष्ट संशोधन को लक्षित करने की अनुमति देता है। उदाहरण के लिए, "svn info [email protected]" test.txt के बारे में जानकारी देगा क्योंकि यह संशोधन 1234 में मौजूद था।सबवर्जन प्रबंधित फ़ाइल नामों में @ अक्षरों से कैसे बचें?

हालांकि, जब फ़ाइल के नाम में @ होता है, तो इसे गलत रूप से सबवर्जन द्वारा व्याख्या किया जाता है संशोधन विनिर्देशक:

जानकारी 'परीक्षण @ .txt' SVN SVN: सिंटैक्स त्रुटि '.txt' संशोधन को पार्स

मैं डबल और सिंगल कोट्स के साथ भागने के रूप में की कोशिश की है और साथ ही '/' , '\', तथा '@'। फ़ाइल नाम के हिस्से के रूप में @ प्रतीकों का इलाज करने के लिए मैं सबवर्जन को कैसे बता सकता हूं?

+3

पृथ्वी पर आपके पास फ़ाइल नाम क्यों हैं? परेशानी के लिए पूछना, अगर आप मुझसे पूछें ... :-) – JesperE

+0

बहुत अच्छा सवाल! :) मैं एक प्रोजेक्ट ले रहा हूं जहां यह चरित्र फ़ाइल नामकरण सम्मेलनों का एक मौलिक घटक है और दुर्भाग्य से इसे निकट भविष्य में बदला नहीं जा सकता है। – weston

+52

ऐप्पल ने आईओएस 4+ के रूप में अपने सभी आईओएस डेवलपर्स के लिए इस सम्मेलन का निर्माण किया। यदि वे उच्च रिज डिस्प्ले के लिए हैं तो सभी संपत्तियों को @ 2x नाम दिया जाना चाहिए ... – Dimitris

उत्तर

260

SVN book से (जोर जोड़ा):

बोधगम्य पाठक शायद इस बात कि क्या खूंटी संशोधन वाक्य रचना प्रतिलिपि पथ या URL वास्तव में उन्हें में संकेत मिलते है कि काम करने के लिए समस्याओं का कारण बनता में सोच रहा है। आखिरकार, svn कैसे पता है कि [email protected] मेरे पेड़ में एक निर्देशिका का नाम है या "समाचार" के संशोधन 11 के लिए सिर्फ एक वाक्यविन्यास है? शुक्र है, जबकि svn हमेशा बाद वाले को मानेंगे, एक मामूली कामकाज है। आपको केवल, जैसे [email protected]@ के अंत में साइन इन करने की आवश्यकता है। svn तर्क में केवल अंतिम संकेत के बारे में परवाह करता है, और इसे हस्ताक्षर पर उसके बाद एक शाब्दिक पेग संशोधन विनिर्देश को छोड़ना अवैध नहीं माना जाता है। यह वर्कअराउंड उन पथों पर भी लागू होता है जो साइन-इन में समाप्त होते हैं- फ़ाइल नाम @ नाम की फ़ाइल के बारे में बात करने के लिए आप [email protected]@ का उपयोग करेंगे।

+0

का उपयोग करता है, यह चाल है, धन्यवाद! – weston

+3

ध्यान दें कि "svn diff" का उपयोग करने के लिए आपको संशोधन पैरामीटर जोड़ने की आवश्यकता है। "svn up @ file @" काम करता है, लेकिन "svn diff @ file @" काम नहीं करता है। आपको "svn diff -r HEAD @ file @" – analytik

+0

का उपयोग करने की आवश्यकता है आपने अपना जीवन बचाया है। –

11

निम्न फ़ाइल जोड़ने के लिए: [email protected] निम्न करें: SVN \ @ 2x.png छवि जोड़ @

81

मूल जवाब सही है, लेकिन शायद काफी स्पष्ट नहीं। विशेष यूनिक्स कमांड लाइन विकल्प इस प्रकार हैं:

svn info '[email protected]@' 

या

svn info "[email protected]@" 

या

svn info image\@2x.png\@ 

मैं सिर्फ सभी तीन का परीक्षण किया।

+4

मैंने 'svn info icon @ 2x का भी परीक्षण किया।पीएनजी @ 'और यह भी काम किया। हाँ, कोई उद्धरण या slashes! – Nate

+0

उद्धरण के लिए आवश्यकता आपके खोल पर निर्भर करती है - मैं केएसएच का उपयोग करता हूं और निश्चित रूप से आपको उद्धरणों की आवश्यकता होती है (जैसा कि '@' एक संकेत है जिसे आप पृष्ठभूमि में चलाना चाहते हैं)। शैल के आधार पर वाईएमएमवी। –

+0

हां। मेरा माइलेज 'बैश' राजमार्ग पर था :) – Nate

0

@ दाऊद एच

मैं सिर्फ @ प्रतीकों से बचने के बिना एक समान आदेश की कोशिश की और यह अभी भी ठीक

svn ci splash.png [email protected]@ 

यह जीएनयू बैश, संस्करण 3.2.48 (1) -release पर है काम करता है (x86_64-apple-darwin10.0) और svn 1.6।

यह काम नहीं होगा: 16

8

मेरे मामले में मैं एक SVN रेपो कि निहित एक @ चिह्न से फ़ाइलें निकालने के लिए आवश्यक

svn remove 'src/assets/images/hi_res/[email protected]' 

लेकिन ऐसा किया:

svn remove 'src/assets/images/hi_res/[email protected]@' 
13

विभिन्न उप-फ़ोल्डरों में एकाधिक फ़ाइलों को जोड़ने के लिए समाधान:

for file in $(find ./ -type f -name "*@*.png"); do svn add [email protected]; done 

बस "@ .png" में "png" को प्रतिस्थापित करें, जिन्हें आप जोड़ना चाहते हैं।

+0

अपने फ़ाइल नामों को उद्धृत या निकालना सुनिश्चित करें (और केस-असंवेदनशील मिलान करते हैं)। विशेष नाम के रूप में उनके नाम पर '@' के साथ फ़ाइलों का इलाज करने की कोई आवश्यकता नहीं है, आप सुरक्षित रूप से '@ 'प्रतीक को सभी फ़ाइल नामों पर जोड़ सकते हैं:' फ़ाइल में $ (ढूंढें ./ -type f -iname" *। png "); svn "$ file @" जोड़ें; done'। भी, क्या यह दृष्टिकोण आपके svn repo को एक फ़ाइल/निर्देशिका संरचना के साथ काम करने वाली स्थानीय प्रतिलिपि के साथ असंगत नहीं करता है? – ardnew

1

"चाल" जैसे 2 तर्कों के साथ svn कमांड के लिए, आपको केवल "12" को केवल को बाएं (पहले) पैरामीटर में जोड़ना होगा। उदाहरण के लिए:

$ svn add [email protected]@ 
A   [email protected] 

$ svn move [email protected]@ [email protected] 
A   [email protected] 
D   [email protected] 


$ svn status 
A  [email protected] 

$ svn commit -m "blah" 
Adding   [email protected] 
Transmitting file data . 
Committed revision 168. 

$ svn delete [email protected]@ 
D   [email protected] 

$ svn commit -m "blahblah" 
*Deleting  [email protected] 

Committed revision 169. 

यह पंक्ति महत्वपूर्ण है: $ SVN कदम README @ txt @ README2 @ txt

आप देख सकते हैं, हम संलग्न करने के लिए की जरूरत नहीं है "@" "README2 पर @ txt "

4

एकाधिक फ़ाइलों को जोड़ने के लिए, वहाँ वैकल्पिक समाधान है:

svn status | grep \.png | awk '{print $2"@"}'| xargs svn add 
+0

कृपया अपना उत्तर समझाएं। – Hemang

+0

आप grep के बजाय awk का उपयोग कर सकते हैं: 'svn status | awk '/\.png/ {प्रिंट $ 2 "@"}' | xargs svn add' – h3dkandi

3

सीधे शब्दों में जोड़ने

@

फ़ाइल आप उपयोग करना, कोई फर्क नहीं पड़ता की जरूरत के कम से

क्या SVN आदेश यह है, उदाहरण के लिए:

[email protected] 

[email protected]@ 
0

एकमात्र समाधान है कि मेरे लिए काम किया गया था @NPike

svn revert 'path/to/filename @ ext @'

+0

क्या आप वाकई मूल प्रश्न के लिए ** नया ** प्रतिक्रिया होना चाहिए? यह एक अपवित्र होना चाहिए या टिप्पणी –

+0

क्षमा करें, मेरा बुरा, मैं अभी तक टिप्पणी नहीं जोड़ सकता – Jonyx4

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