मैं गिट-एसवीएन का उपयोग कर रहा हूं। मैं गिट में जो किया है उसकी एक सूची कैसे प्राप्त कर सकता हूं, लेकिन अभी तक पिछले git svn dcommit
के बाद से एसवीएन रिपोजिटरी के लिए प्रतिबद्ध नहीं है? यही है, अगर मैं डॉकिट करता हूं तो मैं कैसे सत्यापित कर सकता हूं?गिट में क्या चेक किया गया है यह देखने के लिए, लेकिन dcommit के माध्यम से svn के लिए प्रतिबद्ध नहीं किया गया है?
उत्तर
git svn dcommit
के लिए --dry-run
विकल्प जानने वास्तव में क्या हो जाएगा के लिए बहुत उपयोगी है सबवर्सन के लिए प्रतिबद्ध विशेष रूप से है कि कि गुण है:
- यह वास्तव में सबवर्सन
- यह आपको बताता है जो डिफ सबवर्सन में नए संशोधन बनाने के लिए गणना की जाएगी करने के लिए कुछ भी वचनबद्ध नहीं होते
- यह आप जो सबवर्सन में शाखा बताता है आप करने से किया जाएगा - इसमें कभी कभी गैर स्पष्ट के बाद से यह पहला पूर्वज में निर्दिष्ट सबवर्सन शाखा से लिया जाता है, इसके एक Git-svn-आईडी के साथ प्रतिबद्ध प्रतिबद्ध संदेश
सामान्य तौर पर यह एक अच्छा विचार है git svn rebase
पहले करने के लिए यहां तक कि dcommit
का उपयोग करने के बारे में भी सोच रहा है, ताकि आपका इतिहास रैखिक हो - अन्यथा विलय विलय सबवर्सन इतिहास में ज्यादा समझ नहीं ले सकता है। (आप कर तो ली है, इसलिए तो git log
और gitk --all
भी अनिवार्य रूप से बराबर होगी, लेकिन मैं git svn dcommit --dry-run
आप किस बारे में तो होना ही है, भले ही यह व्याख्या करने के लिए और अधिक कठिन है की एक अधिक सटीक तस्वीर देता है लगता है।)
मुझे लगता है कि गिटक का उपयोग करके ऐसा करना सबसे आसान तरीका है। आप सभी शाखाओं को देखने के लिए सभी विकल्प चाहते हैं। यदि आपने इसे टाइप करने से पहले इसका उपयोग नहीं किया है:
gitk --all
आप अपनी शाखाओं का आलेखीय दृश्य देखेंगे। जब आप एसवीएन से अपडेट करते हैं, तो आप अनिवार्य रूप से एक rebase (git svn rebase) करते हैं। इसका मतलब है कि एसवीएन में चेक नहीं किए गए किसी भी स्थानीय काम को अंतिम एसवीएन प्रतिबद्धता के बाद शाखा में दिखाई देगा। मूल रूप से अपने रिमोट एसवीएन ट्रंक और अपनी मास्टर शाखा के बीच काम करता है।
मैं git log --oneline --graph
का उपयोग करें:
* aaaaaaa commit message
* bbbbbbb commit message
|\
| * ccccccc commit message
| * ddddddd commit message
| * eeeeeee commit message
|/
* fffffff commit message
|\
...
ऐसा नहीं है कि करता है aaaaaaa
, bbbbbbb
देखने के लिए आसान है, और fffffff
वर्तमान (गुरु) शाखा पर हैं। अगली बार जब आप git svn dcommit
निष्पादित करते हैं तो ये पहले से ही सबवर्सन के लिए प्रतिबद्ध हैं या प्रतिबद्ध होंगे। (ccccccc
करता है, ddddddd
, eeeeeee
एक अलग शाखा जो मास्टर में विलय हो गया और अलग करता रूप सबवर्सन करने के लिए प्रतिबद्ध नहीं किया जाएगा पर हैं।)
सिर्फ देखने के लिए प्रतिबद्ध की सूची है, यहाँ मेरी जादू है:
git svn dcommit -n | sed 1d | cut -d" " -f3 | xargs -I{} git log --oneline --no-walk {}
उत्पादन:
c2e1eff changed a thing
a889dbf changed a second thing
18a4653 undid the second thing-- oops
- 1. यह जांचने के लिए कि JCheckBox चेक किया गया है?
- 2. git svn: svn के लिए पासवर्ड संग्रहीत नहीं किया गया है
- 3. svn त्रुटि को हल करने के लिए "xry के लिए प्रविष्टि 'को' कॉपी 'के रूप में चिह्नित किया गया है लेकिन यह स्वयं के लिए निर्धारित नहीं है।"
- 4. MyAssembly.XmlSerializers.dll के लिए जेनरेट किया गया है?
- 5. IllegalArgumentException के बराबर चेक किया गया?
- 6. गिट svn dcommit कैसे निर्धारित करता है यह निर्धारित करने के लिए?
- 7. गिट svn dcommit में 'dcommit' नाम की उत्पत्ति क्या है?
- 8. निम्नलिखित खंडों को परिभाषित किया गया है लेकिन लेआउट पेज के लिए प्रस्तुत नहीं किया गया है "~/Views/Shared/_Layout.cshtml"
- 9. के लिए इस्तेमाल किया गया .link_to_grails_plugins फ़ोल्डर क्या है?
- 10. इंस्टॉल किया गया Postgres.app लेकिन यह
- 11. सी ++ ग्लोबल वैरिएबल प्रारंभिक पुस्तकालयों के माध्यम से लिंक नहीं किया गया है, लेकिन जब स्रोत
- 12. UIView, यह देखने के लिए कि कब स्पर्श किया गया है
- 13. URL.openconnection() के दौरान क्या किया गया है?
- 14. जांचें कि 'यह' चेकबॉक्स चेक किया गया है
- 15. चेकडटेक्स्ट व्यू चेक नहीं किया गया
- 16. jQuery यदि चेकबॉक्स चेक किया गया है
- 17. वहाँ एक रास्ता है करने के लिए "Git SVN dcommit" एक क्लोन Git-SVN भंडार से:
- 18. Mysql यूडीएफ स्थापित किया गया है (लेकिन मौजूद नहीं है?)
- 19. क्या यह देखने के लिए कोई तरीका है कि कोई VBScript फ़ंक्शन परिभाषित किया गया है या नहीं?
- 20. लेखक को परिभाषित नहीं किया गया है जब गिट
- 21. गिट: फ़ाइल जिसे वितरित किया जाना चाहिए, लेकिन अनदेखा/पुनः अपलोड नहीं किया गया है?
- 22. "इस दस्तावेज़ के लिए कोई प्रतीक लोड नहीं किया गया है।" लेकिन उनके पास है!
- 23. फ़ंक्शन परिभाषित किया गया है लेकिन सी
- 24. Git-SVN dcommit के लिए, स्वच्छ चेकआउट
- 25. यह जांचने के लिए कि iCloud प्रोग्रामेटिक रूप से कॉन्फ़िगर किया गया है या नहीं,
- 26. चर असाइन किया गया है लेकिन
- 27. आउटपुटस्ट्रीम.write() सफल लेकिन डेटा वितरित नहीं किया गया है
- 28. गीट svn dcommit
- 29. परिवर्तनीय 'एक्स' घोषित किया गया है लेकिन कभी भी त्रुटि का उपयोग नहीं किया गया
- 30. jquery मोबाइल: चेकबॉक्स चेक किया गया है या नहीं
यह स्पष्ट किया जा रहा लायक है कि परिवर्तन 'ccccccc' में पेश किया,' ddddddd' और 'eeeeeee' अप सबवर्सन में खत्म हो जाएगा है, चूंकि विलय प्रतिबद्धता 'ffff के लिए गणना की गई है ffff' में 'bbbbbbbb' में परिवर्तन शामिल होंगे, मान लें कि' ffffffff' का पहला अभिभावक 'bbbbbbbb' है, जैसा कि आप यह कहकर सुझाव देते हैं कि शाखा" मास्टर में विलय "थी। वे परिवर्तन अलग-अलग संशोधन के रूप में नहीं दिखाई देंगे, हालांकि, परिणाम आदर्श से कम हो सकते हैं - अगर आप सबवर्सन को ऐसा इतिहास करना चाहते हैं तो पहले 'गिट svn rebase' करना सबसे सुरक्षित है। –
@ मार्क लॉन्गियर: मेरा इरादा किसी भी डर को दूर करना था कि 'सीसीसीसीसी', 'ddddddd' और 'eeeeeee' subversion में अलग-अलग काम के रूप में दिखाई देगा। मेरे अनुभव में, वे अक्सर एक फीचर शाखा बनाते हैं और अलग-अलग सबवर्जन के रूप में उपयुक्त नहीं होंगे। – titaniumdecoy