मैं gitolite के साथ निर्मित Git रिपॉजिटरी का नाम कैसे बदलूं?


85

मैंने गिटोलिट का उपयोग कर एक गिट रिपॉजिटरी बनाई। अब मैं उस भंडार का नाम बदलना चाहूंगा।

मैं यह कैसे कर सकता हूँ?

गिटोलिट की रीडमी में कहा गया है कि मुझे सर्वर पर सीधे काम नहीं करना चाहिए। लेकिन मुझे लगता है कि मुझे इस मामले में सर्वर पर कुछ काम करना है, है ना?


अच्छा सवाल और मेरे उत्तर पर टिप्पणी के लिए धन्यवाद। आज मुझे इस उत्तर की आवश्यकता है;)

जवाबों:


135

जैसा कि गिटोलिट बेसिक-एडमिन मैनुअल में कहा गया है :

रेपो का नामकरण

यह समान है; इसमें ऐसा करने के लिए कोई कोड नहीं है gitolite। आप क्या कर रहे हैं:

  • सर्वर पर लॉग ऑन करें, cd $REPO_BASE(डिफ़ॉल्ट:) cd ~/repositories, और

    mv old-name.git new-name.git

  • अपने gitolite-admin क्लोन पर वापस जाएं, संपादित करें conf/gitolite.confऔर old-nameसाथ की सभी घटनाओं को बदलें new-name। फिर जोड़ें, प्रतिबद्ध करें, और हमेशा की तरह धक्का दें।

इन 2 चरणों का क्रम महत्वपूर्ण है; उन्हें उल्टा मत करो :-)

एक तीसरा कदम gitolite3 पर आवश्यक है:

  • gl-confरेपो में फ़ाइल को संपादित करें और रिपॉजिटरी नाम को नए नाम में बदलें

और निश्चित रूप से, प्रत्येक उपयोगकर्ता को नए रेपो नाम को इंगित करने के लिए अपने क्लोन कॉन्फ़िगरेशन को अपडेट करना चाहिए।


7
Gitolite3 पर आपको gl-confरिपॉजिटरी नाम को भी बदलना और बदलना होगा।
फर्नांडो कोर्रेया

4
रेपो की अपनी स्थानीय प्रति के दूरस्थ url को नए नाम पर सेट करने के लिए मत भूलना:, git remote set-url git@your.server:new-name.gitतो git fetchसुनिश्चित करें कि कोई त्रुटि नहीं हैं।
cynuro

मैंने इस उत्तर तक पहुँचने से पहले गलत क्रम में पहले दो चरण किए। FYI करें यह भी काम किया, बस कमांड से rm -r new-name.gitपहले था mv
अरनौद पी

9

मैं विशेष रूप से गिटोलिट से परिचित नहीं हूं, लेकिन एक तरीका जो काम कर सकता है वह है सही नाम के साथ पूरी तरह से नया भंडार बनाना, अपने कोड को उस एक में धकेलना और फिर पुराने को हटाना।


मुझे क्या पता है कि इतिहास रखना चाहिए। +1

1
पुरानी रिपॉजिटरी को हटाना, नया रिपॉजिटरी बनाना और पुराने रिपॉजिटरी की सामग्री को नए कार्यों में धकेलना। धन्यवाद!
पैट्रिक

यहाँ इसे प्राप्त करने के आदेश दिए गए हैं (यह मानता है कि NewRepo पहले से ही Gitolite में बनाया गया है): // पुराने रेपो $ git रिमोट ऐड में <रिमोट-मॉनीकर> NewRepo $ git push --all --force Newfepo // नए रेपो में $ git पुल gitolite config को हैक करने की कोई आवश्यकता नहीं है, और सभी इतिहास को बनाए रखा गया :)
मैथ्यू स्केल्टन

0

एक विचार के रूप में ग्रेग Hewgill का उपयोग करना, आप संभवतः विन्यास फाइल में रिपॉजिटरी का नाम बदल सकते हैं। आप पहले एक डमी भंडार पर कोशिश करना चाहते हो सकता है। मेरा संदेह पुराना नाम हटा दिया जाएगा, नया बनाया जाएगा और आपको अपने मूल को स्थानीय स्तर पर अपडेट करने की आवश्यकता है।


दुर्भाग्य से, विन्यास फाइल में रिपॉजिटरी का नाम बदलने से काम नहीं होता है। gitlolite नई रिपॉजिटरी जोड़ता है लेकिन पुराने को हटाता नहीं है। ग्रेग के विचार का उपयोग करना, हालांकि काम करता है।
पैट्रिक

@ पैट्रिक: यह जानने के लिए अच्छा है, मुझे एक का नाम बदलने या हटाने की जरूरत है।

-2

एक नया दृष्टिकोण एक खाली के रूप में नया भंडार बनाना है, तो निम्न कार्य करें:

पुराना मान लिया गया है कि OLD और नया (खाली) नया है:

# mkdir /tmp/1
# cd /tmp/1
# git clone OLD_REPO old
# git clone NEW_REPO new
# cd new
# git pull ../old
# git push origin master

या आप OLD के लिए सीधे रिमोट रेपो का उपयोग कर सकते हैं:

# mkdir /tmp/1
# cd /tmp/1
# git clone NEW_REPO new
# cd new
# git pull OLD_REPO
# git push origin master

यह सारा इतिहास रखेगा और जिओलाइट को अपने इंटर्नल को संभालने देगा। इसके अतिरिक्त आपको gitolite-admin को अपडेट करना होगा लेकिन ऑर्डर में कोई सीमा नहीं है।

यह भी समस्याओं के बिना दूर से काम करता है।

हालांकि OLD रिपॉजिटरी को हटाना जिओलाइट के निर्देशों (स्थानीय रूप से) के अनुसार किया जाना चाहिए।

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