किए गए फ़ाइलों को अपडेट करने के लिए करें, मैं अपने वेब विकास कार्य के लिए एक एसवीएन भंडार का उपयोग कर रहा हूं। मेरे पास एक विकास साइट स्थापित है जिसमें भंडार का चेकआउट है।एसवीएन पोस्ट-प्रतिबद्ध हुक का उपयोग केवल
मैं एक SVN के बाद प्रतिबद्ध हुक ताकि जब भी एक प्रतिबद्ध भंडार विकास साइट अद्यतन किया जाता है करने के लिए किया जाता है की स्थापना की है:
cd /home/www/dev_ssl
/usr/bin/svn up
यह ठीक काम करता है, लेकिन अद्यतन भंडार के आकार के कारण एक लंबा समय लें (लगभग 3 मिनट) जो नियमित रूप से काम करते समय निराशाजनक होता है। मैं जो चाहता हूं वह पोस्ट-प्रतिबद्ध हुक को केवल उन फ़ाइलों/निर्देशिकाओं को अपडेट करने के लिए बदलना है जो मुझे प्रतिबद्ध हैं लेकिन मुझे नहीं पता कि यह करने के बारे में कैसे जाना है। "सबसे कम आम निर्देशिका" को अपडेट करना शायद सबसे अच्छा समाधान होगा, उदा।
तो पालन फ़ाइलें करने से:
- /branches/feature_x/images/logo.jpg
- /branches/feature_x/css/screen.css
यह निर्देशिका को अपडेट करेंगे :/शाखाओं/सुविधा_एक्स/
क्या कोई मुझे ऐसा समाधान बनाने में मदद कर सकता है जो इसे प्राप्त करता है?
अद्यतन:
- भंडार और विकास साइट एक ही सर्वर पर स्थित हैं इसलिए नेटवर्क मुद्दे शामिल नहीं किया जाना चाहिए।
- सीपीयू उपयोग बहुत कम है, और I/O ठीक होना चाहिए (यह हाय-स्पेक समर्पित सर्वर पर चल रहा है)
- विकास साइट लगभग है। आकार में 7.5 जीबी और लगभग शामिल है। 600,000 आइटम, यह मुख्य रूप से कई शाखाओं/टैग होने
मुझे sed समाधान पसंद है। लेकिन हम फ़ाइल नाम के पथ से पहले 4 वर्णों के बारे में कैसे सुनिश्चित कर सकते हैं? –
@FelipeAlvarez कोई गारंटी नहीं है कि यह नहीं बदलेगा। लेकिन, अभी तक (1.8.0), यह [3 वर्ण] है (https://github.com/apache/subversion/blob/1.8.0/subversion/svnlook/svnlook.c#L568) और [एक स्थान] (https://github.com/apache/subversion/blob/1.8.0/subversion/svnlook/svnlook.c#L601), फिर पथ। –