Svn जोड़ने का उचित तरीका: निष्पादन योग्य


107

मेरे पास कुछ फाइलें हैं जो उन्हें जोड़ने से पहले svn के लिए निष्पादन योग्य हैं। उनके पास svn: निष्पादन योग्य संपत्ति सेट है। अब, निष्पादन योग्य बिट के बिना कुछ अन्य फ़ाइलों की जाँच की गई थी और यह नहीं है, और मैं svn सेट करना चाहता हूं: निष्पादन योग्य संपत्ति:

$ svn propset svn:executable on *.cgi

फिर मैं स्थिति और यहां तक ​​कि svn के साथ फ़ाइलों की जांच करता हूं: निष्पादन योग्य को संशोधित किया गया है:

$ svn diff
Property changes on: a.cgi
___________________________________________________________________
Modified: svn:executable
   - 
   + *


Property changes on: b.cgi
___________________________________________________________________
Added: svn:executable
   + *

a.cgi को संशोधित नहीं किया जाना चाहिए। मैं svn को जोड़ना चाहता हूं: निष्पादन योग्य बिट को उसी तरह से सेट किया जाना चाहिए जैसा कि अन्य फाइलों पर है, लेकिन इसे करने के लिए कमांड का पता नहीं लगा सकते हैं।


2
जब भी मैं टाइप नहीं करना चाहता, मैं हर बार यह पेज खोलता हूं svn propset svn:executable on (...)। और सवाल का जवाब होना चाहिए for f in *.cgi; do if [ ! -x $f ]; then svn ps (...); fi; done, और बस संशोधित फ़ाइलों को कमिट करना चाहिए । फिर आगे बढ़ते हैं।
टॉमाज़ गैंडर

@TomaszGandor आपको लगता है कि आप svn:executableउस दूसरे स्निपेट में कहीं गायब हैं । हो सकता है svn ps svn:executable on $f;?
कीथ एम

1
en.wikipedia.org/wiki/Ellipsis_(linguistics) - हाँ, यह पाठक को एक अभ्यास के रूप में छोड़ दिया गया था।
टॉमस गंडोर

जवाबों:


166

आप svn संपत्ति संपादन कमांड का उपयोग करने के लिए सही हैं। संपत्ति svn: निष्पादन योग्य है।

Svn में "निष्पादन योग्य बिट" जोड़ने के लिए

svn propset svn:executable on <list of files>

Svn में "निष्पादन योग्य बिट" को हटाने के लिए

svn propdel svn:executable <list of files>

इसके लिए SVN प्रलेखन यहाँ स्थित है।

जहाँ तक निष्पादनों को संशोधित नहीं करने की बात है, आप निष्पादन योग्य (एक चेकसम सत्यापित करेगा कि) को संशोधित नहीं कर रहे हैं, लेकिन आप SVN रिपॉजिटरी को संशोधित कर रहे हैं। याद रखें कि SVN केवल फाइल ही नहीं, फाइल सिस्टम को भी संशोधित करता है; इसलिए, अनुमति बिट्स का एक संशोधन एसवीएन संशोधन संख्या में वृद्धि करेगा, भले ही यह फ़ाइल के गुणों का संशोधन हो (और फ़ाइल का संशोधन नहीं है)।


जब मैं ऊपर दिखाए गए तरीके से svn propset चलाता हूं, तो यह उन्हें "*" पर सेट करता है, लेकिन प्राकृतिक तरीका svn सेट करता है: निष्पादन योग्य कुछ भी नहीं, लेकिन जो अभी भी सेट है। मैं चाहता हूं कि यह संपत्ति उसी तरह की हो, जिसके निष्पादन योग्य बिट उन्हें तोड़फोड़ करने से पहले सेट किया गया था।
जेक

2
सभी संपादनों के लिए क्षमा करें, लेकिन अगर मुझे सही तरीके से याद है, तो इसे किसी भी चीज़ पर सेट करने से निष्पादन योग्य बिट चालू हो जाएगी, इसे हटा देना (और संभवतः इसे शून्य या व्हॉट्सएप पर सेट करना) इसे बंद कर देगा। अपने SVN क्लाइंट का उपयोग करने के लिए मूल्य पाने के लिए, svn प्रोपगेट का उपयोग किया जा सकता है।
एडविन बक

-2

यहां बताया गया है कि मैंने अपने प्रोजेक्ट में सभी * .py फाइलों पर निष्पादन योग्य संपत्ति कैसे सेट की है, जो उन पर बिट सेट निष्पादित करते हैं। मैं इसे शीर्ष स्तर की निर्देशिका से निष्पादित करता हूं

for f in `find ./ -name '*.py'`; do echo $f; if [ -x $f ]; then echo $f 'is executable setting svn:executable'; svn propset svn:executable on $f; else echo $f 'is not executable'; fi; done;

प्रॉपेसेट का उपयोग किए बिना निष्पादन योग्य विशेषता कैसे सेट हो जाती है? मैंने इसका उपयोग नहीं किया, और मेरी जानकारी के अनुसार, किसी और ने भी नहीं किया। यह एक ही निर्देशिका में तीन फ़ाइलों पर और कहीं नहीं दिखाई देता है, और लगता है कि उन फ़ाइलों के बारे में कुछ खास नहीं है। (वे जावा फाइलें हैं, श या एक्स या बैट या जार या जो भी नहीं है।)
जेरी मिलर

मेरा मानना ​​है कि यदि फ़ाइल में निष्पादन योग्य बिट सेट है जब इसे शुरू में आयात किया जाता है तो svn निष्पादन योग्य संपत्ति सेट हो जाएगी।
इसहाक जेसोप

बहुत यकीन है कि एक-शुक्राणु स्विच है जो अगर / तो की तुलना में थोड़ा अधिक सुरुचिपूर्ण हो सकता है, लेकिन निश्चित रूप से यह याद रखना अधिक होगा
कभी नहीं फिर से सो जाओ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.