2010-09-21 13 views
6

मेरे पास एक गिट रिपोजिटरी (और काम करने वाली निर्देशिका) है जो मेरे ड्रॉपबॉक्स में संग्रहीत है, इसलिए मैं कंप्यूटर के बीच प्रतिबद्ध या छेड़छाड़ किए बिना आगे और आगे बढ़ सकता हूं (पढ़ना: बिना किसी प्रयास के) । यह एक मामूली परेशानियों को छोड़कर महान काम कर रहा है जो एक बड़ी परेशानी बन रहा है।ड्रॉपबॉक्स में Unsync'd गिट रिपोजिटरी

हर बार, मैं एक कंप्यूटर को पूरी तरह से प्रतिबद्ध स्थिति में छोड़ दूंगा, केवल दूसरे कंप्यूटर पर लेने के लिए और git status रिपोर्टों में बदलाव करेगा। अनिवार्य रूप से, वे परिवर्तन अनुमतियों से संबंधित हैं। मुझे क्या यकीन है कि क्यों है? मुझे लगता है कि यह ड्रॉपबॉक्स द्वारा सिंक किए गए कंप्यूटरों पर फ़ाइलों को लिखने से संबंधित हो सकता है, लेकिन umask दोनों प्रणालियों पर 0002 पर सेट है। मुझे लगता है कि मान ड्रॉपबॉक्स द्वारा लिखे/अपडेट की गई फ़ाइलों के मोड को निर्देशित करता है, लेकिन यह नहीं होगा पहली बार मैं गलत होगा।

मुझे पता है कि मैं सिर्फ फ़ाइल मोड को अनदेखा करने के लिए गिट को बता सकता हूं, लेकिन यह समस्या को हल कर रहा है। मैं वास्तव में इसे समझना चाहता हूं इसलिए मैं आगे बढ़ने के बारे में एक सूचित निर्णय ले सकता हूं।

धन्यवाद।

अद्यतन

तो यहाँ भंडार सिंक भले ही यह पूरी तरह से ड्रॉपबॉक्स के भीतर निहित है से बाहर हो रही की एक बहुत सभ्य प्रतिनिधि उदाहरण है। हम बात के रूप में, मेरी निजी लैपटॉप अपनी परियोजनाओं में से एक के लिए एक साफ कार्यशील निर्देशिका रिपोर्ट कर रहा है:

$ git status 
# On branch develop 
nothing to commit (working directory clean) 

मेरा काम लैपटॉप, हालांकि, ट्रैक न किए गए फ़ाइलों की एक संख्या बताता है। मुझे दोबारा कहना है: अनट्रैक फाइलें।

$ git status 
# On branch develop 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# html/cake/console/libs/templates/ 
# ...4 more files... 
# html/cake/tests/test_app/plugins/test_plugin/views/themed/ 
nothing added to commit but untracked files present (use "git add" to track) 

यह कैसे हो सकता है? मेरी ~/.gitignore फ़ाइल दोनों मशीनों में भी साझा की जाती है (नहीं कि इनमें से कोई भी पथ अनदेखा फ़ाइल में शामिल नहीं है)। क्या गिट का एक और घटक है - या शायद ड्रॉपबॉक्स - जो यहां खेल सकता है?

उत्तर

1

मुझे एक ही परिस्थिति में यह सटीक समस्या मिली है।

फ़ाइलों को रोकने के लिए git status में दिखा आप फ़ाइल मोड परिवर्तन की अनदेखी करने के Git सेट कर सकते हैं:

git config core.filemode false 

यह परिवर्तन Git भंडार करने के लिए स्थानीय है और फ़ाइलों के साथ सिंक किया जाएगा।

1

आप यह जांचना चाहेंगे कि आप अपना उमास्क कहां सेट कर रहे हैं; हो सकता है कि ड्रॉपबॉक्स आपके शैल के मुकाबले एक अलग उमास्क से शुरू हो रहा हो। हालांकि, मेरा मानना ​​है कि गिट समूह/अन्य अनुमतियों को अनदेखा करता है और ज्यादातर निष्पादन बिट से संबंधित है, जो उमास्क से प्रभावित नहीं होना चाहिए। डिबगिंग के लिए कुछ विचार:

  • क्या आप इस मांग को पुन: उत्पन्न कर सकते हैं? कैसे?
  • आप किस ऑपरेटिंग सिस्टम के बीच सिंक्रनाइज़ कर रहे हैं?
  • यदि आप git checkout -f पर सवाल करते हैं, तो क्या उन्हें सही अनुमतियां मिलती हैं?
  • यदि आप बस एक सिस्टम पर chmod फ़ाइल करते हैं, तो क्या यह परिवर्तन प्रचारित हो जाता है?
+0

अपने प्रश्नों के लिए: नहीं (मैं इसे अक्सर देखता हूं, लेकिन लगातार नहीं), मैक दोनों, मैं कोशिश करूंगा, हां (कम से कम अल्प अवधि में)। मैं इसमें ड्रिलिंग रखूंगा और उसका पालन करूंगा। –

+0

ओएस एक्स पर ड्रॉपबॉक्स और अनुमतियों के लिए Google खोज http://hints.macworld.com/article.php?story=20081009204908181 लौटाती है लेकिन मुझे नहीं लगता कि यह उस स्थिति से प्रासंगिक है जिसका आप वर्णन कर रहे हैं। –

+0

इसके लिए खुद को पुन: पेश करने में कुछ समय लगा है। मैंने कोशिश करने में बहुत समय व्यतीत नहीं किया है, लेकिन मैं अभी भी इसे अनुमानित रूप से पुन: उत्पन्न नहीं कर सकता। मेरे पास अब एक प्रणाली है जहां कुछ फाइलों में 644 परमिट हैं और 'गिट स्टेटस' उन्हें अनमोडिफाइड दिखाता है। एक अन्य प्रणाली जहां एक ही फाइल 644 है और 'गिट स्टेटस' 755 से संशोधित परम दिखाती है। –

0

तथ्य आपको Mac का उपयोग कर रहे प्रासंगिक है - Macworld Hints article एक टिप्पणी में उल्लेख मुद्दा बताते हैं (लेकिन टिप्पणी बताते हैं कि chmod u+rwX आदि के साथ अनुमतियाँ ठीक करने का तरीका, बल्कि पूर्ण अनुमतियों कि गंदगी बातें कर सकते हैं अप से करने के लिए नीचे पढ़ें)।

यह Dropbox Support answer बताता है कि शायद क्या चल रहा है और इसे कैसे ठीक किया जाए - मैकोज़ एक्स तेंदुए (10.5) ने एसीएल के डिफ़ॉल्ट उपयोग को कैसे बदला है।