मैं एक स्रोत के पेड़ को दूसरे से कैसे अपडेट कर सकता हूं?


1

मेरे पास एक मौजूदा स्रोत-ट्री है, जिसमें उप-निर्देशिकाओं और हजारों स्रोत फ़ाइलों का एक गुच्छा है। मेरे पास एक नया स्रोत-ट्री है जहां कुछ फाइलों को अपडेट किया गया है और कुछ नई फाइलों / निर्देशिकाओं को जोड़ा गया है।

मौजूदा स्रोत-ट्री में छिपे हुए उप-निर्देशिकाओं (.गित) का एक गुच्छा है, जिसमें नए स्रोत-वृक्ष का अभाव है।

मैं सभी अद्यतन और नई फ़ाइलों के लिए नए स्रोत-ट्री से मौजूदा तक अपना रास्ता खोजने के लिए एक रास्ता खोज रहा हूं। मैं समान फ़ाइलों की नकल करने के लिए बुरा नहीं मानता क्योंकि इसका कोई प्रतिकूल प्रभाव नहीं होता।


मैं मान रहा हूँ कि आप लिनक्स पर हैं?
— John T

हाँ (मैक ओएसएक्स पर)

जवाबों:


1

सबसे पहली बात जो दिमाग में आती है rsync :

rsync -va /path/to/new/tree/ /path/to/existing/tree

पहले रास्ते पर पीछे चल रहा स्लैश महत्वपूर्ण है इसके बिना, एक नया tree के तहत फ़ोल्डर बनाया जाएगा /path/to/existing/treeपथ का निर्माण /path/to/existing/tree/tree।

यह कमांड नए ट्री से फाइलों के साथ मौजूदा ट्री में फाइलों को अपडेट करेगा।


यह काम करता है लेकिन पूरी तरह से जैसा कि मुझे उम्मीद थी। मैंने rsync -va नया / / पुराना आज़माया है जो लगभग काम करता है, लेकिन यह .गित निर्देशिकाओं को पुराने से नए में कॉपी नहीं करता है, शायद यह बताने का एक बेहतर तरीका कि मैं क्या हासिल करने की कोशिश कर रहा हूं वह एक मर्ज है जहां एक पक्ष को प्राथमिकता दी जाती है जब दोनों स्थानों में एक ही फाइल अलग हो। मैं ऐसी फाइलें चाहता हूं जो केवल पुराने या केवल नए परिणामी मर्ज में हों।

kdiff3 का उपयोग कर समाप्त हुआ ( kdiff3.sourceforge.net ) चीजों को मर्ज करने का उपकरण

शामिल करने के लिए फ़ोल्डरों की फ़ाइल पढ़ने के लिए आप rsync's -include-from स्विच का भी उपयोग कर सकते हैं। इस तरह, आप पुराने से नए सभी .git फ़ोल्डरों को सिंक कर सकते हैं। सभी .गित फ़ोल्डरों को पुराने के तहत खोजने के लिए और उन्हें एक फाइल में रखें जिसे आप उपयोग कर सकते हैं find /full/path/to/old -type d -name ".git" > gitfolders.txt। अब हम उस फ़ाइल का उपयोग केवल। नए फ़ोल्डर को वापस नए में सिंक करने के लिए कर सकते हैं: rsync -va --include-from 'gitfolders.txt' old/ new।
— John T
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.