SVN मेसेज को पूर्वव्यापी रूप से बदलें?


85

मैं बड़ी संख्या में एसवीएन प्रतिबद्ध संदेशों को एक अलग संरचना में फिर से लिखना चाहूंगा, जैसे एक श्रेणी उपसर्ग। से:

"foo" now accepts "bar" format for connection string.

मुझे चाहिए

core - database - "foo" now accepts "bar" format for connection string.

क्या ऐसा करने का एक आसान तरीका है जिसमें संपूर्ण रिपॉजिटरी का उपयोग करके डंपिंग शामिल नहीं हैsvndumpfilter ?

मैं क्लाइंट अंत पर TortoiseSVN और सर्वर एंड पर VisualSVN के साथ काम कर रहा हूं। (VisualSVN क्लासिक के आसपास एक आवरण है svn, जिसे मैं कमांड लाइन के माध्यम से भी बात कर सकता हूं।)

जवाबों:


98

हां, प्रतिबद्ध संदेश बदले जा सकते हैं। उन्हें नियमित फ़ाइल-गुणों के समान, संशोधन पर गुणों के रूप में लागू किया जाता है।

TortoiseSVN लॉग विंडो में आप सही पर क्लिक कर सकते हैं और "लॉग संदेश संपादित करें" का चयन कर सकते हैं।


इसके लिए +1 धन्यवाद। मैंने कुछ एपीआई परिवर्तनों को शामिल करते हुए कुछ काम किया जो मैं बाकी लोगों के लिए अलग से करना चाहता था, और मैंने गलती को पूरा करने से पहले ... यह दर्शाने के लिए लॉग संदेश लिखा था। मैंने एक व्हाट्सएप परिवर्तन को एक लॉग संदेश के साथ बदलकर "निश्चित" किया जो बाकी लोगों को समझाता है! अगली बार, मुझे पता होगा कि क्या करना है।
एड डैनियल

1
मैंने इसे +1 भी दिया था, लेकिन तब यह एक संदेश के साथ काम नहीं करता था "रिपॉजिटरी को पुन: प्रस्ताव को स्वीकार करने में सक्षम नहीं किया गया है, प्रशासक से पूर्व-पुन: परिवर्तन-परिवर्तन हुक बनाने के लिए कहें"। क्या प्रशासक को स्वतः पता चल जाएगा कि क्या करना है?
जे। मेरिल

19
क्या आप मुझसे पूछ रहे हैं कि क्या आपके पास एक सक्षम सबवर्सन प्रशासक है? :)
जेस्पर

@ J.Merrill आपको hooksरिपॉजिटरी के स्थान पर फ़ोल्डर को ब्राउज़ करना होगा और इसे काम pre-revprop-change.tmplकरने के pre-revprop-change.batलिए नाम बदलना होगा ।
sa_leinad

59

आप निश्चित रूप से लॉग संदेशों को पूर्वव्यापी रूप से बदल सकते हैं, यह FAQ में कवर किया गया है । मुझे यकीन नहीं है कि VisualSVN के लिए कमांड लाइन इंटरफ़ेस कैसे काम करता है, लेकिन वेनिला svn के लिए कमांड होगा

svn propset -r N --revprop svn:log "new log message" URL

यदि आप रिपॉजिटरी को फिर से लोड किए बिना सभी संशोधनों के लिए ऐसा करना चाहते हैं, तो आप इस आदेश को सभी संशोधनों की सूची पर काम करने के लिए स्क्रिप्ट कर सकते हैं। आपके रिपॉजिटरी के आकार के आधार पर इस तरह से करने में कुछ समय लगेगा, लेकिन सिद्धांत रूप में ऐसा कोई कारण नहीं है कि आप इसे नहीं कर सकते, और इसमें डंप और रीलोड शामिल नहीं है।

इसके अलावा, वेनिला एसवीएन के पास एक कमांड है svnlookजो एक प्रशासनिक उपकरण की तरह है जो सीधे रिपॉजिटरी फाइलों के साथ काम करता है। यह टूल URL को नहीं समझता है (आपके पास रिपॉजिटरी में फाइलसिस्टम-स्तरीय पहुंच होनी चाहिए), लेकिन है बहुत तेज है। वाक्यविन्यास थोड़ा अलग है, लेकिन आप उसी तरह से उस टूल का उपयोग करके गुणों को संशोधित कर सकते हैं।


3
धन्यवाद @kazark, मुझे svn propedit -r N --revprop svn:logअपने संपादक में संदेश बदलने में सक्षम होने के लिए करना था ।
टूटुज्जु

3
बस एक नोट जोड़ने के लिए: डिफ़ॉल्ट रूप से, यह कमांड काम नहीं करेगा, क्योंकि डिफ़ॉल्ट रूप से पुनरीक्षण गुणों में परिवर्तन की अनुमति नहीं है। इसे अनुमति देने के लिए, svn व्यवस्थापक को "पूर्व-सुधार-परिवर्तन" नामक एक हुक बनाना होगा । यह जानकारी एफएक्यू में है जैसा कि ऊपर बताया गया है।
माथियास

विंडोज पर, कमांड चलाने से पहले आपको पर्यावरण चर "SVN_EDITOR", "VISUAL", या "EDITOR" सेट करना होगा। उदाहरण के लिए:set SVN_EDITOR=notepad.exe
Envired

26

हां, आप कर सकते हैं, लेकिन आपको इसे पहले रिपॉजिटरी पर सक्षम करने की आवश्यकता है।

रिपॉजिटरी में, हुक डायरेक्टरी में, प्री-रिवप्रॉप-चेंज .mpl नामक एक फाइल है। यह टिप्पणियों के कुछ पृष्ठों को मिला है, जो यह करता है, और केवल लॉग गुणों में परिवर्तन की अनुमति देने के लिए सेट अप किया गया है। इसे सक्षम करने के लिए, फ़ाइल को पूर्व-परिवर्तन-परिवर्तन में बदल दें और इसे निष्पादन योग्य बनाएं (मैं एक POSIX- होस्ट की गई तोड़फोड़ मान रहा हूं, यदि आप विंडोज को होस्ट करने के लिए उपयोग कर रहे हैं, तो आपको यह संदेश उपयोगी लग सकता है)।

एक बार जब रिपॉजिटरी इसे अनुमति देती है, तो आप एक कमेंट पर राइट-क्लिक मेनू से कमिट के लिए लॉग संदेश को बदलने के लिए कछुआ का उपयोग कर सकते हैं, या आप कमांड लाइन का उपयोग कर सकते हैं।


+1 उत्कृष्ट जानकारी सर। यह मुझे पूर्व-पुन: परिवर्तन-हुक के बिना ऐसा नहीं करने देगा। मुझे टेम्पलेट बैश स्क्रिप्ट को विंडोज़ में पोर्ट करना होगा, लेकिन यह समस्या नहीं होनी चाहिए।
पेक्का

मैंने एक उदाहरण कमांड स्क्रिप्ट का लिंक जोड़ा: svn.haxx.se/users/archive-2006-03/0107.shtml
एंड्रयू


2

svn propedit -r N --revprop svn:log URL

URLयदि आप पहले से कार्यशील निर्देशिका में हैं, तो वैकल्पिक वैकल्पिक है। एक संपादक तब दिखाई देगा ताकि संदेश को बदला जा सके।


1

बस सटीक समस्या के साथ इस पोस्ट के साथ आया था, क्लाइंट और VisualSVN के लिए एक Windows सर्वर पर SVT का उपयोग कर।

यदि आपके पास "डीएवी अनुरोध विफल" त्रुटि संदेश है, तो एंड्रयू एलेट के जवाब पर एक नज़र डालें और अपने रिपॉजिटरी हुक सबडायरेक्ट में "प्री-रिवप्रॉप-चेंज.tmpl" संपादित करें।

एक बार जब यह किया जाता है तो प्रासंगिक मेनू में "लॉग संदेश को संपादित करें" अंत में काम करना चाहिए!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.