2010-09-07 15 views
16

क्या कोई ऐसा प्रोग्राम है जो गिट-एसवीएन करता है, लेकिन ऐसी स्थिति में जहां सर्वर पर रिपोजिटरी गिट है, और डेवलपर svn का उपयोग करता है?आरडब्ल्यू एक्सेस गिट रिपोजिटरी svn (git-svnserver) का उपयोग कर?

मुझे पता है कि github.com उनके द्वारा होस्ट किए गए गिट रिपॉजिटरीज़ तक svn पहुंच की अनुमति देता है, लेकिन ऐसा लगता है कि उन्होंने इस प्रोजेक्ट को ओपन सोर्स (अभी तक?) जारी नहीं किया है, और उनके सर्वर का उपयोग करना मेरे लिए एक विकल्प नहीं है (यहां तक ​​कि उनके निजी भंडार भी नहीं)।

संपादित करें: मुझे लगता है कि मैं जो खोज रहा हूं वह 'गिट-सीवीएसएस सर्वर' - गिट-एसवीएनएसवर के समानांतर है। थोड़ी सी खोज में, मुझे गिट मेलिंग सूची पर कुछ 2-3 साल के धागे मिले, लेकिन ऐसा नहीं लगता कि किसी ने भी महत्वपूर्ण प्रगति की है। मुझे आशा है कि कोई मुझे उस पर सही कर सकता है।

क्या वर्तमान में कोई गिट-svnserver परियोजनाएं चल रही हैं? मुझे डुप्लिकेट प्रयास करने से नफरत है, लेकिन ऐसा लगता है कि GitHub is the farthest along, लेकिन किसी और के पास यह नहीं हो सकता है।

उत्तर

0

मेरा मानना ​​है कि git-svn लिंक गिट (मॉनिटर - रीबेज या डॉकिटिट - एक एसवीएन शाखा) द्वारा संचालित किया जाना है।
मतलब आप पहले अपने स्थानीय सर्वर (जहां आप एसवीएन का भी उपयोग करते हैं) पर जो भी गिट रेपो की आवश्यकता है उसे क्लोन कर सकते हैं, और अपने स्थानीय गिट रेपो और आपके एसवीएन वर्कस्पेस के बीच 'git-svn' कमांड के लिए इसका उपयोग करें।

एक बार आपका स्थानीय गिट रेपो पर्याप्त रूप से आपके एसवीएन रेपो को प्रतिबिंबित करता है, तो आप रिमोट गिट सर्वर पर वापस धक्का दे सकते हैं।

+0

मुझे यकीन नहीं है कि यह वही करता है जो मैं चाहता हूं। यह केवल मेरे सहकर्मियों के लिए है जो गिट पर स्विच नहीं करना चाहते हैं, क्योंकि अब वे svn में करते हैं, वैसे भी चेकआउट/अपडेट/प्रतिबद्ध हैं। अगर उन्हें कभी और करने की ज़रूरत होती है, तो कोई वास्तव में गिट का उपयोग करके अपना हाथ पकड़ सकता है। –

+0

@drhorrible: यह अभी भी एक समाधान हो सकता है: [git2svn] जैसी एक स्क्रिप्ट (http://repo.or.cz/w/git2svn.git) (यह भी देखें http://stackoverflow.com/questions/572893/cloning -ए-गैर-मानक-svn-repository-with-git-svn/572898 # 572898) उनके लिए उनके एसवीएन इतिहास को सेट कर सकता है, फिर भी गिट रिपो वहां स्थानीय गिट रेपो में अपने एसवीएन काम को वापस पाने में सक्षम होने के लिए अन्य गिट उपयोगकर्ताओं के लिए वापस धकेल दिया जा रहा है। – VonC

4

यह SVN प्रोटोकॉल पर एक Git भंडार सेवा करने के लिए अजगर कोड है:

http://git.q42.co.uk/git_svn_server.git

+0

नीचे :(किसी के पास दर्पण है? मुझे इस परियोजना को चुनने में दिलचस्पी होगी। –

+0

साइट ऊपर है, लेकिन अंतिम प्रतिबद्धता 20 महीने पहले थी। – iGEL

+1

यह बहुत उपयोगी लगता है लेकिन कोई दस्तावेज नहीं है। क्या किसी को पता है उदाहरण, एक ट्यूटोरियल, या कम से कम एक README? – nweiler

10

SubGit पर एक नजर डालें।

सबगिट सर्वर-साइड समाधान है, यह सबवर्सन को गिट रिपोजिटरी तक पहुंच प्रदान करता है और इसके विपरीत। आप अधिक जानकारी के लिए documenation का उल्लेख कर सकते हैं, लेकिन सामान्य रूप में यह SubGit उपयोग करने के लिए काफी आसान है:

SubGit Git भंडार आप के लिए जोर दे रहे हैं करने के लिए स्थानीय उपयोग की जरूरत है। एक ही मशीन पर सबवर्सन भंडार बनाएँ:

$ svnadmin create $SVN_REPOS 

तो चलाने

$ subgit configure $SVN_REPOS 

यह आदेश $SVN_REPOS/conf/subgit.conf फ़ाइल बनाता है, इस प्रकार है बस के रूप में अपने git.default.repository विकल्प समायोजित:

[git "default"] 
    repository = /path/to/your/git/repository.git 

आप कई Git निर्दिष्ट कर सकते हैं एक सबवर्सन रिपोजिटरी में सिंक्रनाइज़ किए गए भंडार, बस [git "identifier"] अनुभागों को आवश्यक जोड़ें।

आप मनमाने ढंग से भंडार लेआउट भी निर्दिष्ट कर सकते हैं, उदा। मानक एक इस तरह दिखता है:

trunk = trunk:refs/heads/master 
    branches = branches/*:refs/heads/* 
    shelves = shelves/*:refs/shelves/* 
    tags = tags/*:refs/tags/* 

तुम भी $SVN_REPOS/conf/authors.txt समायोजित कर सकते हैं पहचान git करने के लिए SVN लेखकों के नाम मैप करने के लिए।

कि चलाने के बाद:

$ subgit install $SVN_REPOS 
    $ ... let initial translation complete ... 
    $ TRANSLATION SUCCESSFUL 

इस समय आप सबवर्सन भंडार और उसके Git समकक्ष जो लगातार सिंक्रनाइज़ कर रहे हैं पर, यानी SubGit तुरंत तब्दील Git में SVN संशोधन हर svn commit पर प्रतिबद्ध और Git पर SVN संशोधन में प्रतिबद्ध प्रत्येक git push

तो, आप बनाए गए सबवर्जन रिपोजिटरी में परिवर्तन कर सकते हैं और सभी परिवर्तन मुख्य गिट भंडार के साथ समन्वयित कर सकते हैं।

+0

इसे साझा करने के लिए धन्यवाद! मैं अपनी आंखें इस पर रखूंगा, और उम्मीद है कि जब तक यह उत्पादन के लिए तैयार हो, मेरी कंपनी इसे आजमाने के लिए तैयार है। –

2

SVNGit वही है जो आप चाहते हैं। यह गिट रिपॉजिटरीज तक पहुंचने के लिए एसवीएन क्लाइंट्स के लिए एक ओपनसोर्स सर्वलेट लाइब्रेरी है।

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