2016-10-28 9 views
9

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

हालांकि, फ़ाइल को git pull द्वारा अपडेट किया जाने पर समस्याएं उत्पन्न होती हैं।

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

कभी-कभी, यह सॉर्सेट्री का उपयोग करके रिवर्स हंक करने के लिए केवल परेशान है, लेकिन जब कई फाइलें अपडेट की जाती हैं, तो ओवरराइट को गिट सर्वर पर ध्यान नहीं दिया जा सकता है - जब तक कोई त्रुटि न हो। वर्तमान में हम त्रुटि का पता लगाने और वापस करने के लिए git log --follow -p -- file कमांड का उपयोग कर रहे हैं, लेकिन समय पर ओवरराइट नहीं देखा गया है, तो यह संभव नहीं है कि हमें मैन्युअल रूप से लाइनों की प्रतिलिपि बनाने के लिए मजबूर किया जा सके। क्या इस तरह के ओवरराइट को पहले स्थान पर रोकने का कोई तरीका है?

+0

मैं जिस समाधान का उपयोग करूंगा वह इस तरह से व्यवहार करने वाले संपादकों से दूर जाना होगा। अधिकांश आधुनिक आईडीई (ग्रहण, इंटेलिजे, नेटबीन, आदि) में यह समस्या नहीं है। –

+0

PHP के लिए कोई विकल्प? (और मुक्त होने के लिए बेहतर है, इसलिए PHPStorm एक विकल्प नहीं है) – cytsunny

+0

मुझे लगता है कि मैंने यह देखा है कि यह इंटेलिजे के साथ भी कुछ बार होता है, लेकिन चिंता करने के लिए पर्याप्त समस्या कभी नहीं थी। मुझे नहीं पता कि आप किस संपादक का उपयोग PHP के लिए कर सकते हैं जो इससे बच जाएगा। नोटपैड ++ इस क्षेत्र में बहुत अच्छी तरह से व्यवहार किया प्रतीत होता है, यानी यह आपके अपडेट नहीं खाता है। –

उत्तर

4

एक फ़ोल्डर एक संपादक (मुख्य रूप से उदात्त या हमारी टीम में एटम) द्वारा खोला जाता है, और कोड संपादक बाहर संपादित किया जाता है, कभी कभी संपादक में सामग्री ताजा है, लेकिन कभी कभी यह नहीं है।

इसे ही विधिवत file-watcher तरह Atom issue 3594

एक एटम पैकेज में चर्चा की है इस मुद्दे को कम, अगर संपादक के बाहर एक संशोधन का पता चला है कि प्रत्येक फ़ाइल को फिर से लोड करने के लिए उत्साह से मदद मिलेगी है।

आपके पास SublimeText के लिए एक ही समस्या reported in this thread है। जैसा कि that thread में उल्लिखित है, नेटवर्क शेयर पर फ़ाइल तक पहुंचने पर यह समस्या विंडोज पर और भी प्रासंगिक है।
File Reloader मदद कर सकता है लेकिन बाहरी परिवर्तनों का पता नहीं लगा सकता है।

SublimeText thread सेटिंग (2016)

{ "always_prompt_for_file_reload": true } 

का उल्लेख है लेकिन वह मदद नहीं हो सकता है जब वहाँ दोनों संपादक में और सहेजी गई फ़ाइल में परिवर्तन कर रहे हैं:

: एक editor like Visual Studio Code के साथ इस हल यदि दोनों पक्षों (डिस्क से और संपादक के माध्यम से) में परिवर्तन होते हैं, तो जब भी आप VSCode का उपयोग कर फ़ाइल को सहेजने का प्रयास करते हैं, तो संपादक आपको उस स्थिति के बारे में चेतावनी देगा और फ़ाइल तुलना आपको यह तय करने की अनुमति देगी कि क्या करना है।

क्यों, SublimeText साथ ("always_prompt_for_file_reload" सेटिंग के अलावा), आप FileDiff plugin आवश्यकता हो सकती है कि।
यह सहेजी गयी साथ फ़ाइल diffing के लिए अनुमति नहीं है:

https://forum.sublimetext.com/uploads/default/original/3X/5/a/5a59f922e26fea423cc31ae5c1d744eca8205143.png

1

वहाँ पहली जगह में अधिलेखित इस तरह रोकने के लिए एक तरीका है?

हां, क्योंकि आपके संपादक फ़ाइल सिस्टम से बाधा से पता लगाने में विफल रहे हैं, फिर प्रत्येक 3 सेकंड के रूप में फ़ाइल सिस्टम को समय-समय पर मतदान करके उन्हें निष्पादित करने में विफल होते हैं।

नोटपैड ++ पर प्रोग्रामिंग करते समय यह विफलता बहुत स्पष्ट है, यही कारण है कि एक मतदान प्लगइन जो समय-समय पर फ़ाइलों पर परिवर्तन के लिए फ़ाइल सिस्टम की जांच करता है, वास्तव में आवश्यक है।

Sublime Text और Notepad++ के लिए, प्लग इन हैं:

  1. https://packagecontrol.io/packages/Auto%20Refresh
  2. https://superuser.com/a/592913/458103

मैं उन्हें एक लंबे समय के लिए इस्तेमाल किया (दस्तावेज़ पर नजर रखने के => नजर रखने के लिए शुरू), कारण कई पाठ संपादकों/आईडीई पर एक ही फाइल के साथ प्रोग्राम करने के लिए। फिर जब संपादक के बीच बदलते हैं, तो मैं अक्सर अपने काम को ढीला करता हूं क्योंकि वे फाइल सिस्टम से फ़ाइलों को पुनः लोड नहीं करते हैं। हालांकि, उल्लिखित प्लगइन्स स्थापित करने के बाद, मैंने कभी भी इस समस्या का सामना नहीं किया या आवधिक रीलोडिंग के कारण प्रदर्शन समस्याओं को देखा।

संबंधित मुद्दे

 संबंधित मुद्दे