2009-09-15 15 views
10

मेरे पास एक नंगे गिट-एसवीएन रिपोजिटरी है और इस पर 'गिट एसवीएन fetch' किया है।एक नंगे रेपो पर 'git svn fetch' के बाद 'git log' को कैसे अपडेट करें?

रनिंग 'गिट लॉग' अपडेट नहीं दिखाता है। मुझे यकीन है कि अपडेट हैं क्योंकि यह 'git svn fetch' और 'git svn log' के बाद परिवर्तित फ़ाइलों को प्रदर्शित करता है, उन्हें भी दिखाता है।

कृपया ध्यान दें कि मैंने जानबूझकर इसे एक नंगे रेपो बना दिया है, इसलिए 'गिट रिबेस' काम नहीं करेगा। प्राप्त किए गए परिवर्तन प्राप्त करने के लिए उचित आदेश क्या है?

उत्तर

8

धन्यवाद git log git-svn प्रयास करें - मैं डॉन एक नंगे रेपो है, लेकिन मैंने अभी git svn fetch चलाया है, और मानक git log मुझे वर्तमान (रीबेस) लॉग देता है, लेकिन गिट-एसवीएन तर्क के साथ (जो मास्टर के अलावा दूसरी शाखा है जिसे git branch -a द्वारा मेरे मामले में पहचाना जाता है) मैं वें लॉग अप मिलता है ई संशोधित संशोधन

+0

हाँ आप सही हैं। 'गिट लॉग' मास्टर रेफरी की तलाश में है, यही कारण है कि यह 'गिट प्रतीकात्मक-रेफरी रेफ/हेड/मास्टर रेफ/रिमोट्स/गिट-एसवीएन' पर काम करता है। धन्यवाद। – vjangus

+0

यह गिट में भी काम नहीं कर रहा है 1.7.5.4 – MDCore

6

मैं इस सवाल का जवाब मिल गया है,

Git प्रतीकात्मक-रेफरी refs/सिर/मास्टर refs/रिमोट/Git-svn

स्टीवन वाल्टर की टिप्पणी करने के लिए http://gsocblog.jsharpe.net/archives/12

+0

यह अब गिट 1.7.5.4 – MDCore

+0

में काम नहीं कर रहा है यह मेरे लिए काम करता है !!! –

17

git svn fetch रीमोट्स/गीट-एसवीएन नामक एक नई रिमोट शाखा जोड़ता है (जैसा कि git branch -a के साथ देखा जा सकता है)।

यदि आप अपस्ट्रीम svn में परिवर्तन करते हैं, तो git fetch फिर से चलाएं, परिवर्तन इस शाखा में खींचे जाते हैं (वास्तव में, प्राप्त) मास्टर पर नहीं।

तो गिट लॉग (और बाकी सब कुछ) मास्टर शाखा पर ठीक काम करने के लिए आपको बस एक विलय की आवश्यकता है, क्योंकि आपको आम तौर पर एक fetch के बाद करना होगा (यह गिट खींचता है, एक fetch और फिर एक विलय)।

चूंकि गीट svn पुल काम नहीं करता है, तो आपको इसे मैन्युअल रूप से मर्ज करना होगा। जबकि मास्टर शाखा पर, चलाएँ:

git merge remotes/git-svn

यह Git-svn शाखा के साथ अपने गुरु शाखा में मर्ज हो जाएगी, फिर सब कुछ ठीक हो जाता है।

तो भविष्य में,

git svn fetch 
git merge remotes/git-svn 

चलाने के लिए और आप एक बार फिर से नदी के ऊपर भंडार के साथ तारीख तक हो जाएगा।

वीजेंगस द्वारा सुझाए गए अनुसार गिट-एसवीएन हेड के मास्टर के सिर का रेफरी सेट करने से यह काम भी मिल जाएगा, लेकिन आपको कभी भी रिमोट शाखा में बदलाव नहीं करना चाहिए।

+1

यह वह उत्तर था जो मेरी स्थिति को ठीक से संबोधित करता था। – Ian

+0

मैंने शुरुआत में 'git svn fetch -s --prefix = origin /' द्वारा svn repo को खींच लिया था, इसलिए मेरे मामले में 'git-svn' के बजाय 'रिमोट/मूल/ट्रंक' शाखा थी। हालांकि वही समाधान। – mcmlxxxvi

संबंधित मुद्दे