2011-08-15 13 views
8

मैं एक पेशेवर प्रोग्रामर नहीं हूं, लेकिन मैं कुछ छोटी एकल परियोजनाएं करता हूं और मुझे कुछ संस्करण और सिंकिंग चाहिए, लेकिन इसके माध्यम से जाना प्रतिबद्धता और चेकआउट (विभिन्न कंप्यूटरों पर) को याद रखने की प्रक्रिया, ड्रॉपबॉक्स फ़ोल्डर में कोड रखने से अधिक परेशानी होती है जो स्वचालित रूप से फ़ाइल परिवर्तन पर क्लाउड पर अपलोड होती है। वर्तमान प्रति का उपयोग करना मेरे लिए पूरी तरह से पारदर्शी है, लेकिन कोई संस्करण नहीं है। (सिंकिंग भी दर्द है क्योंकि मैं घर जाने के कुछ दिनों बाद अपने लैपटॉप को नहीं खोलता हूं।)ड्रॉपबॉक्स-शैली svn/git/mercurial ?: परिवर्तन और ऑटो-चेकआउट पर ऑटो-प्रतिबद्ध

क्या कोडबेस स्वचालित रूप से फ़ाइल परिवर्तन (या बस कुछ ही मिनटों) पर स्वचालित रूप से प्रतिबद्ध करने का एक तरीका है और स्वचालित रूप से डाउनलोड करें नवीनतम संस्करण अगर मैं अपने कंप्यूटर को किसी अन्य कंप्यूटर से जारी रखना चाहता हूं?

धन्यवाद!

+0

आप ऐसा क्यों करना चाहते हैं? क्या होता है जब आप अपना कोड बदलते हैं और यह आकस्मिक तोड़ देता है, लेकिन आप एक सप्ताह बाद नोटिस करते हैं? दिन के लिए काम करने के बाद प्रतिबद्ध होने की याद रखने की तुलना में यह आपके सभी ऑटो-कॉमिट्स के माध्यम से वापस जाने वाला एक बड़ा दर्द होगा, क्योंकि आपके पास इतने सारे संस्करण हैं, आईएमओ। – CamelBlues

+0

अधिक से सहमत नहीं हो सका, @CamelBlues। वर्जनिंग प्रतिबद्धताओं में जोड़े गए एनोटेशन के बिना लगभग पूरी तरह से बेकार है और सुविधा या बग फिक्स के पूरा होने की तरह काम करने के लिए लॉजिकल स्थानों की पसंद है। –

+0

[गिट ऑटो-प्रतिबद्ध बनाना] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/420143/making-git-auto-commit) – 79E09796

उत्तर

0

तो मैं जो कर रहा हूं वह कई कंप्यूटरों के बीच मेरे कोड अड्डों को सिंक करने के लिए btsync का उपयोग कर रहा था। यह तत्काल 'ऑटो-सिंक' सुविधा बनाता है जिसे मैं ढूंढ रहा था और यह मेरे लिए पूरी तरह से पारदर्शी है। (यह उपरोक्त वर्णित ऑटो-कॉमेट्स के साथ समस्याओं का भी ख्याल रखता है) लेकिन एक टिप: अपने सभी कंप्यूटरों में रिपोज़ को आजमाएं और सिंक न करें। यद्यपि यह संभव है, यह मेरे लिए अनावश्यक था और फ़ाइलों को सिंक करना बेहतर है, और एक मशीन पर एक रेपो रखें जिसे आप रिमोट कर सकते हैं और यदि आवश्यक हो तो धक्का दे सकते हैं। इस तरह आपको वर्जनिंग और ऑटो-सिंक मिलते हैं (या प्रतिदिन प्रतिबद्ध होने के लिए मजबूर होना पड़ता है, या जब आपको अपने कंप्यूटर को छोड़ने की आवश्यकता होती है, या किसी भी प्रतिबद्ध त्रुटियों से निपटना पड़ता है जो आपके लैपटॉप को बंद करने से पहले आता है, या अधिकतर सभी को रोज़ाना करने के लिए याद रखने के लिए किसी की गिरती याददाश्त पर भरोसा करना पड़ता है (मेरे लिए बड़ा!))।

1

ड्रॉपबॉक्स इतिहास में फ़ाइलों के कुछ संस्करण रखता है। शायद ही कभी "वर्जनिंग" कहा जा सकता है, लेकिन आप अतीत में कुछ समय पहले फ़ाइलों को पुनर्स्थापित कर सकते हैं।

यदि आपको वास्तव में कम करने और विलय करने से परेशान नहीं किया जा सकता है, तो मैं बस ड्रॉपबॉक्स के साथ रहूंगा, क्योंकि यह अच्छा और स्वचालित है।

आप अनुसूचित कार्य (यदि विंडोज़ पर हैं) या क्रॉन जॉब (यदि लिनक्स) सेट अप कर सकते हैं जो हर 5 मिनट में प्रतिबद्ध/धक्का देगा। और हर बार जब आप अपना कंप्यूटर शुरू करते हैं तो खींचें/अपडेट करें। लेकिन मैन्युअल विलय की आवश्यकता होने पर, मैं एक संभावित दुःस्वप्न होने का इंतजार कर रहा हूं, विशेष रूप से पुल/अपडेट पर।

इसके अलावा, मैं Mercurial का उपयोग करने की सलाह दूंगा, क्योंकि यह गिट की तुलना में सीखना/सौदा करना और svn से अधिक उन्नत है। यह संस्करण-नियंत्रण प्रणाली से कुछ दर्द दूर ले जाएगा।

5

यह आपकी "परियोजनाओं" पर निर्भर करता है।

Flashbake के बाद विज्ञान गल्प लेखक कॉरी डॉकट्रॉ स्वचालित रूप से नियमित अंतराल पर कब्जा और संस्करण के लिए अपनी लेखन प्रक्रिया में चाहता था बनाया गया था: (

हर 15 मिनट, Flashbake किसी भी फाइल है कि आप इसे जांच करने के लिए पूछना पर लग रहा है मैं क्या यह मेरी सभी फिक्शन-इन-प्रोग्रेस, मेरी टूडो सूची, सूचना के उपयोगी बिट्स की मेरी फाइल और मेरी हाल की किताबों के पूर्ण इलेक्ट्रॉनिक संस्करणों को देख रहा है), और अंतिम चेक के बाद किए गए किसी भी बदलाव को रिकॉर्ड करता है, जो उन्हें वर्तमान के साथ एनोटेट करता है सिस्टम घड़ी पर टाइमज़ोन, Google से प्राप्त किए गए उस टाइमज़ोन का मौसम, और आपके ब्लॉग के आरएसएस फ़ीड में उनके नीचे की रेखा के साथ अंतिम तीन शीर्षकों (मैं इसे "मैं कहां हूं," क्या यह वहां है, और मैं किस बारे में सोच रहा हूं? ")। यह आपके कंप्यूटर के अपटाइम को भी रिकॉर्ड करता है। भविष्य के संस्करण के लिए, मुझे लगता है कि आपके संगीत प्लेयर द्वारा खेले जाने वाले सबसे हालिया तीन गाने होने में मजा आएगा। (source)

यह स्वत: अद्यतन के लिए संस्करण के लिए Git, और क्रॉन पर आधारित है (Git पर्याप्त अंतरिक्ष कुशल इस विनयशील बनाने के लिए है)। आप another review पर देख सकते हैं। कोड here है।

यदि आप वास्तव में, वास्तव में प्रत्येक एक्स मिनट (डेटा के बारे में उर्फ ​​पैरानोइड) के बजाय फ़ाइल संशोधन पहचान चाहते हैं, तो आप something based on inotify (details - नोट कर सकते हैं कि स्वचालित स्वचालित रूप से जोड़ सकते हैं!)।

फिर भी एक और विकल्प (जो ऑटो-प्रतिबद्ध प्रश्न को हल नहीं करता है, इसलिए आप मिश्रण करना चाहते हैं) ड्रॉपबॉक्स पर चल रहे गिट को देखना है। इसमें already been discussed here on SO है।

+0

से नीचे अपना स्वयं का समाधान डाला है अन्यथा बहुत अच्छा जवाब है, लेकिन इनोटिफाइटी गैर संसाधन-गहन के रूप में है जैसा कि यह हो जाता है। जब तक आपका संपादक ऑपरेटिंग सिस्टम को 'लिखने' कॉल नहीं करता तब तक प्रक्रिया पूरी तरह सो जाती है। बेशक, यदि आप जितनी बार करते हैं उतनी बार बचाते हैं, तो जो लोग आपका मतलब रखते हैं, वे जल्दी से जुड़ने जा रहे हैं। –

+0

@ करल: हाँ, यह सटीक रूप से मेरा मतलब है। अच्छी पकड़। इसे प्रतिबिंबित करने के लिए संपादित किया गया। – huitseeker