दिलचस्प पोस्ट
CSS के माध्यम से एक बटन का आकार बदलना प्रतिशत साइन इन बैच फ़ाइल को अनदेखा करें ऊपरी कैसे एक स्ट्रिंग में शब्द के प्रत्येक पहले अक्षर का केस? इनपुट प्रकार = पासवर्ड, ब्राउज़र को पासवर्ड याद न रखें जावा में चार में एट को परिवर्तित करें ड्रॉपडाउन सूची डेटा स्रोत सी में फ़ंक्शन प्रोटोटाइप घोषित करना आवश्यक है? PHP – एक php फ़ाइल शामिल है और क्वेरी पैरामीटर भी भेजता है ऑपरेटर को ओवरराइड कैसे करें? अजीब परिणाम उत्पन्न करने वाली दोहरी गणना multimap में .NET Int32 के लिए अधिकतम मूल्य क्या है? एएसपी.नेट एमवीसी बनाम वेब फॉर्म का उपयोग करने के लिए सबसे बड़ा लाभ कुछ डेवलपर्स के लिए अच्छा UI डिज़ाइन इतना कठिन क्यों है? सर्वर पर 'कैनवास' छवि डेटा अपलोड करना

स्रोत भंडार का स्पष्ट उपयोग क्या है जो आपने कभी देखा है?

यह वास्तव में मेरे पहले प्रश्न से उत्पन्न होता है जहां जवाब में से एक ने मुझे आश्चर्य किया कि लोग विकास के विभिन्न तरीकों में एससीएम / रिपॉजिटरी का उपयोग कैसे कर रहे हैं।

वेब के समाधान से एकत्रित समाधान "स्रोत भंडार का स्पष्ट उपयोग क्या है जो आपने कभी देखा है?"

प्री-टेस्टेड कमिट्स

इससे पहले (टीमसिटी, बिल्ड मैनेजर):

अवधारणा सरल है, बिल्ड सिस्टम आपके कूट के ट्रंक के बीच एक रोडब्लॉक के रूप में खड़ा है और केवल बिल्ड सिस्टम के बाद ही यह निर्धारित करता है कि आपका कमेटी चीजों को नहीं तोड़ता है, यह प्रतिबद्ध को संस्करण नियंत्रण में पेश करने की अनुमति देता है, जहां अन्य डेवलपर्स समन्वयित होंगे और अपनी स्थानीय कार्य प्रतियों में यह बदलाव एकीकृत करता है

(जीआईटी जैसे जीआईटी का प्रयोग करते हुए, यह एक स्रोत भंडार है):

पूर्व-परीक्षण किए गए कमेट के लिए हडसन के साथ मेरे वर्कफ़्लो में तीन अलग-अलग जीआईटी भंडार शामिल हैं:

  • मेरे स्थानीय रेपो (स्थानीय),
  • कैनोनिकल / केंद्रीय रेपो (मूल)
  • और मेरे "विश्व-पठनीय" (फायरवाल के अंदर) रेपो (सार्वजनिक)।

प्री-टेस्टेड कमेट्स के लिए, मैं विश्व-पठनीय रेपो पर "पु" (संभावित अपडेट) नाम की एक सतत बदलती शाखा का उपयोग करता हूं।
हडसन के अंदर मैंने एक नौकरी बनाई जो "पु" शाखा में बदलावों के लिए विश्व-पठनीय रेपो (सार्वजनिक) का चुनाव करती है और अपडेट को धक्का दे रहे हैं जब बिल्ड बनाते हैं

स्थापना से लेकर मूल तक एक बदलाव लेने के लिए मेरे कार्यप्रवाह है:

* hack, hack, hack * commit to local/topic * git pup public * Hudson polls public/pu * Hudson runs potential-updates job * Tests fail? o Yes: Rework commit, try again o No: Continue * Rebase onto local/master * Push to origin/master 

इस प्री-टेस्टेड कम वर्कफ़्लो का उपयोग करके मैं अपनी परीक्षण आवश्यकताओं के बहुमत को बिल्ड सिस्टम के क्लस्टर मशीनों को स्थानीय रूप से चलाने के बजाय ऑफलोड कर सकता हूं, जिसका अर्थ है कि मैं अपना खुद का पूरा परीक्षण पूरा करने के लिए प्रतीक्षा करने के बजाय अपना समय लिखने का बहुमत खर्च कर सकता हूं कोडिंग पुनरावृत्तियों के बीच में मशीन


(विविधता) निजी बिल्ड (डेविड गेजोट, अल्गोडाल)

ऊपर की तुलना में समान सिद्धांत, लेकिन निर्माण एक ही वर्कस्टेशन पर विकसित किया जाता है, लेकिन क्लोन रेपो पर:

लंबी अवधि में सीआई सर्वर का इस्तेमाल न करने के लिए और न बढ़ने के समय स्थानीय स्तर पर बिल्डिंग की घबराहट क्यों न हो?

जीआईटी के साथ, यह केक का टुकड़ा है
सबसे पहले, हम एक दूसरे फ़ोल्डर में काम कर रहे निर्देशिका 'git क्लोन' गिट प्रतिलिपि बहुत जल्दी है
अगली बार, हमें क्लोन करने की ज़रूरत नहीं है। बस बताओ कि डेल्टा मिल जाए शुद्ध परिणाम: त्वरित क्लोनिंग प्रभावशाली।

निरंतरता के बारे में क्या?
कार्यशील निर्देशिका से एक सरल ' git pull ' करना, डेल्टा के डिस्टेस्ट का उपयोग करके महसूस करेगा, कि वह परिवर्तन जहां पहले से ही साझा भंडार पर धकेल दिया गया है।
कुछ करने को नहीं है। फिर से प्रभावशाली

बेशक, जबकि दूसरी निर्देशिका में बिल्ड चल रहा है, हम कोड पर काम करना जारी रख सकते हैं। प्रतीक्षा करने की कोई ज़रूरत नहीं है

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

हाँ। आपने अच्छी तरह से सुना है हमने सिर्फ एक सर्वरहीन सीआई का निर्माण किया है एक असली सीआई सर्वर के हर अतिरिक्त सुविधा मुझे शोर है

 #!/bin/bash if [ 0 -eq `git remote -v | grep -c push` ]; then REMOTE_REPO=`git remote -v | sed 's/origin//'` else REMOTE_REPO=`git remote -v | grep "(push)" | sed 's/origin//' | sed 's/(push)//'` fi if [ ! -z "$1" ]; then git add . git commit -a -m "$1" fi git pull if [ ! -d ".privatebuild" ]; then git clone . .privatebuild fi cd .privatebuild git clean -df git pull if [ -e "pom.xml" ]; then mvn clean install if [ $? -eq 0 ]; then echo "Publishing to: $REMOTE_REPO" git push $REMOTE_REPO master else echo "Unable to build" exit $? fi fi 

दिमित्री ताशकिनॉव , जिसकी DVCS और सीआई पर एक दिलचस्प सवाल है , पूछता है:

मैं समझ नहीं पा रहा हूं कि "हमने एक सर्वरहीन सीआई का निर्माण किया है" मार्टिन फोवलर के राज्य के साथ:
"एक बार जब मैंने अपना काम ठीक तरह से सिंक्रनाइज़ किया हुआ काम कर लिया है, तो मैं अंततः अपने परिवर्तनों को मुख्य लाइन में कर सकता हूं, जो फिर से रिपॉजिटरी अपडेट करता है। हालांकि मेरा काम मेरे काम को खत्म नहीं करता। इस बिंदु पर हम फिर से निर्माण करते हैं, लेकिन यह मेनलाइन कोड के आधार पर एक एकीकरण मशीन पर समय.जब यह निर्माण सफल होता है तो हम कह सकते हैं कि मेरे बदलाव किए गए हैं। हमेशा एक मौका है कि मैंने अपनी मशीन पर कुछ याद किया और रिपॉजिटरी ठीक से अपडेट नहीं हुई।
क्या आप इसे अनदेखा करते हैं या मोड़ देते हैं?

@मिट्री: मैं मार्टिन फोवेलर द्वारा उनके निरंतर एकाग्रता प्रविष्टि में बताई गई प्रक्रिया को अनदेखा नहीं करता और न ही मोड़ करता हूं।
लेकिन आपको यह एहसास करना होगा कि डीवीसी ने शाखाओं के लिए एक ऑर्थोगोनल आयाम के रूप में प्रकाशन को जोड़ दिया है ।
डेविड द्वारा वर्णित सर्वरहीन सीआईआई सिर्फ मार्टिन द्वारा विस्तृत सामान्य सीआई प्रक्रिया का कार्यान्वयन है: एक सीआई सर्वर होने के बजाय, आप एक स्थानीय प्रतिलिपि पर पुश करते हैं जहां एक स्थानीय सीआई चलता है, फिर आप "मान्य" कोड केंद्रीय रेपो में डालते हैं

@ वीएनसी, लेकिन यह विचार था कि स्थानीय स्तर पर सीआई न होने पर विशेष रूप से मशीनों के बीच संक्रमण में कुछ नहीं याद आना था।
जब आप तथाकथित स्थानीय सीआई का उपयोग करते हैं, तो यह सभी परीक्षणों को सिर्फ इसलिए क्योंकि यह स्थानीय है, लेकिन एक अन्य मशीन पर बाद में टूट सकता है।
तो क्या यह एकीकरण है? मैं यहाँ बिल्कुल आलोचना नहीं कर रहा हूं, सवाल मेरे लिए मुश्किल है और मैं समझने की कोशिश कर रहा हूं।

@मिडीरी: "तो क्या यह एकीकरण है"?
यह एकीकरण का एक स्तर है, जो सभी बुनियादी जांचों से मुक्ति पाने में मदद कर सकता है (जैसे प्रारूप मुद्दा, कोड शैली, बुनियादी स्थिर विश्लेषण का पता लगाना, …)
चूंकि आपके पास यह प्रकाशन तंत्र है, अगर आप चाहें तो उस तरह की सीआईआई को किसी अन्य सीआई सर्वर पर रख सकते हैं। उस सर्वर, बदले में, "केंद्रीय" रेपो को स्वचालित रूप से पुश कर सकते हैं (अगर यह अभी भी तेज़ है)

डेविड गेजोट को उस अतिरिक्त स्तर की ज़रूरत नहीं थी, जो पहले से ही तैनाती वास्तुकला (पीसी-> पीसी) के लक्ष्य में था और केवल मूलभूत सीआई स्तर की आवश्यकता थी।
इससे उसे और अधिक पूर्ण परीक्षण के लिए और अधिक पूर्ण सिस्टम इंटीग्रेशन सर्वर सेटअप करने से रोक नहीं सका।

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

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

निश्चित रूप से पोलारियन ट्रैक और विकी …

पूरे बग ट्रैकिंग और विकी डाटाबेस को पूरी तरह से संशोधन इतिहास रखने में सक्षम होने के लिए उपक्रम में संग्रहीत किया गया है।

http://www.polarion.com/products/trackwiki/features.php