मैं आपके द्वारा चलाए जाने वाले कमांड लाइन के सामान्यीकरण का उपयोग करता हूं, जिसे svnapply.sh
कहा जाता है। मैंने इसे नहीं लिखा, लेकिन मुझे याद नहीं आया कि मुझे यह कहां मिला। उम्मीद है, मूल लेखक इसे यहाँ reposting के लिए मुझे माफ कर दो होगा:
#!/bin/bash
#
# Applies arbitrary commands to any svn status. e.g.
#
# Delete all non-svn files (escape the ? from the shell):
# svnapply \? rm
#
# List all conflicted files:
# svnapply C ls -l
APPLY=$1
shift
svn st | egrep "^\\${APPLY}[ ]+" | \
sed -e "s|^\\${APPLY}[ ]*||" | \
sed -e "s|\\\\|/|g" | \
xargs -i "[email protected]" '{}'
टिप्पणियों के अनुसार, स्क्रिप्ट आप एक ही स्थिति के साथ सभी फ़ाइलों के खिलाफ मनमाना आदेशों को चलाने के लिए अनुमति देता है।
अद्यतन:
यह बहुत मुश्किल एक स्क्रिप्ट है कि उस फ़ाइल के लिए उचित बात एक तर्क के रूप में एक फ़ाइल पथ लेता है और जोड़ें/हटाने के लिए उपयोगकर्ता को संकेत और फिर करता है लिखने के लिए नहीं होगा। चेनिंग कि उपर्युक्त लिपि के साथ मिलकर आप जो चाहते हैं उसे प्राप्त करेंगे।
स्रोत
2008-10-01 23:08:12
ध्यान दें कि आपके एक लाइनर अनचाहे फ़ाइलों के लिए अपने नाम – freespace
में रिक्त स्थान के साथ तोड़ते हैं 'svn st | grep '^?' | sed's/^ [?] */"/ '| sed's/$ /" /' | xargs svn add' जो whitespace समस्या से पीड़ित नहीं है – freespace