तोड़फोड़ में स्थिति "एस"


80

कुछ बिंदु पर मेरी काम करने वाली कॉपी में सभी फाइलें "एस" प्रतीक के साथ चिह्नित की गई हैं जैसा कि नीचे दिखाया गया है:

$ svn st
M    S   AclController.php
     S   InstallationController.php
     S   CustomerController.php
     S   RedirController.php
     S   IndexController.php
     S   LoginController.php
     S   OrderController.php
     S   ProductController.php
     S   SelfInstallController.php
     S   SelfcareController.php

दिलचस्प बात यह है कि यह केवल विशेष रूप से काम करने वाली कॉपी को इंट-इंट्रस्ट करता है - जब मैं प्रोजेक्ट को नई निर्देशिका में चेकआउट करता हूं, तो यह "एस" निशान नहीं दिखाता है।

इस कष्टप्रद "एस" प्रतीकों से कैसे छुटकारा पाएं? यह डब्ल्यूसी की स्थिति की स्पष्टता को काफी कम कर देता है।

अपडेट: मैं मानक svn switchसिंटैक्स का उपयोग करके समय-समय पर स्विच करता हूं । यह कभी भी इस "S" प्रतीक का कारण नहीं बना। स्विच करने के लिए उपयोग की जाने वाली कमांड थी:

svn switch svn+ssh://xxxxxx/subversion/xxxxxxx/releases/1.0.16 .

क्या कोई तरीका है जिससे मैं "S" झंडे को साफ़ कर सकता हूँ?


7
स्थिति एस का अर्थ है "स्विच किया हुआ", जिसके अनुसार svn h st। क्या है कि इसका मतलब है, लेकिन ...
me_and

1
@me_and: कार्यशील प्रतियों को स्विच करना: svnbook.red-bean.com/en/1.0/ch04s05.html
क्रिस J

1
सिर्फ रिकॉर्ड के लिए -इसके लिए यह निकटतम समस्या है जिसे मैंने ऑनलाइन पाया है-, हम एक शाखा को ट्रंक में विलय करने की कोशिश करते समय एस फ्लैग मुद्दा थे। यह इस तथ्य के साथ करना था कि हम बाहरी उपयोग कर रहे थे। उन्हें शाखा पर हटा दिया गया था लेकिन ट्रंक उन्हें संदर्भित करता रहा, इस प्रकार विलय करने में विफल रहा। इसका समाधान यह था कि हम ट्रंक में शाखा पर लगाए गए बाहरी हिस्सों को हटा दें, ट्रंक को कम करें और फिर से पुन: व्यवस्थित करें। आशा है कि रास्ते में किसी की मदद करता है :) चीयर्स!
डेरियो जेवियर क्रेवरो

जवाबों:


76

इसका अर्थ है कि फ़ाइलें आपके निर्देशिका में मौजूद निर्देशिका की तुलना में आपके तोड़फोड़ भंडार में एक अलग स्थान से हैं। इसका समाधान संपूर्ण कार्य प्रतिलिपि को उसी स्थान पर स्विच करना है। आदेश को कैसे लागू किया जाए, इसके विवरण के लिए तोड़फोड़ पुस्तक में दो खंड देखें ।


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

4
मुझे यह एक त्रुटि के बाद आया - E210002: नेटवर्क कनेक्शन अप्रत्याशित रूप से बंद हो गया। स्विच कमांड को फिर से निष्पादित करना समस्या को ठीक करने के लिए लग रहा था और "एस" स्थिति चली गई थी।
केविन सैडलर

1
Svn स्विच के दौरान रुकावट इस कारण होती है। जागरूक रहें।
SandorRacz

2
केविन सैडलर वास्तव में समाधान प्रदान करता है, न कि केवल समस्या का वर्णन करता है। +1
ahnbizcad

11

यदि आप निर्देशिका में स्वयं और (एक) पर 'svn जानकारी' कहते हैं, तो आपके अंदर मौजूद फ़ाइलों को दो अलग-अलग URL मिलेंगे।

यदि फ़ाइल / निर्देशिका का URL फ़ाइल के नाम के बाद माता-पिता के URL से मेल नहीं खाता है, तो आपको 'S' का दर्जा मिलता है।

क्या आप माता-पिता के url और बच्चे के नोड्स में से एक को पोस्ट कर सकते हैं? (जहां उपयुक्त हो URL का अनामकरण)


हालांकि जवाब नहीं, यह 'उत्तर' कुछ सुराग देने के लिए बहुत सहायक है जैसे कि क्या चल रहा है।
FlipMcF

यह कोई उत्तर नहीं है।
अहानजकदक

8

ट्रंक (आर 100) से कुछ शाखा (आर 50) पर स्विच करते समय मेरे पास ' एस ' की स्थिति थी । मुझे त्रुटि मिली:

svn: Failed to add file 'web/.htaccess': an unversioned file of the same name already exists

सभी वेब / सबडिडर ' S ' थे ' फ्लैग किया गया।

कारण: मैंने हटा दिया था। शाखा (r50) में अभी भी रेपो में वेब / .htaccess था।

समाधान :

mv web/.htaccess ../../
svn switch back to trunk
svn switch to branch again

सब कुछ ठीक है।


मेरे पास एक समान त्रुटि थी, लेकिन मैंने "वेब / .htaccess" के अपने आक्रामक संस्करण को हटा दिया (क्योंकि मेरे लिए यह कई निर्देशिकाएं थीं) और svn अपडेट किया, फिर ट्रंक से एक विशेष टैग पर वापस ट्रंक (विशिष्ट टैग) पर स्विच किया गया ट्रंक की एक प्रति ...) और उन्मत्त 'एस' झंडे चले गए।
कासापो

6

मुझे एक निर्देशिका के साथ यह समस्या थी जिसे मैंने सफलतापूर्वक SVN के लिए प्रतिबद्ध किया था। मेरे लिए समाधान यह था कि इसे स्थानीय स्तर पर मिटा दिया जाए और फिर अपडेट किया जाए। मैं कोई अंतर नहीं देख सका, लेकिन .svn फ़ाइल जो भी कारण (कोई और अधिक एस) के लिए तय नहीं किया गया था।


मैं एक नई शाखा को अद्यतन करने के बाद एक svn बाहरी में ऐसा हुआ था। मैन्युअल रूप से पूरे बाहरी को हटाना तब चल रहा svn अद्यतन इसे ठीक करता है। +1!
स्टीफन फ़ुह्री

5

यह आमतौर पर शाखाओं को स्विच करते समय एक व्यवधान के कारण होता है।

किसी अन्य शाखा में स्विच करें, और फिर उस शाखा पर वापस जाएं जिसे आप वास्तव में चाहते हैं।

svn switch some_other_branch_url

svn switch desired_branch_url


4

बस एक टिप्पणी: मुझे वही एस प्रतीक मिला जब मैंने रिपॉजिटरी में उसी स्थान से हटाए गए निर्देशिका की जांच की, लेकिन एक अलग URL का उपयोग करते हुए, यानी, अलग प्रोटोकॉल का उपयोग करके 'svn चेकआउट svn + ssh: // उपयोगकर्ता' जैसे स्कम .gforge ... 'के खिलाफ' svn चेकआउट - उपयोगकर्ता नाम https: //scm.gforge .... '। मैंने इसे पहले चेकआउट के लिए उपयोग किए गए उसी URL का उपयोग करके इसे फिर से जाँच कर हल किया।


उसी URI के साथ पुन: जाँच ने इसे हल किया। धन्यवाद।
सेफर

4

यदि कोई व्यक्ति उत्तर की तलाश में देर से आ रहा है (जो कि ऊपर सही ढंग से बताया गया है), मेरा मानना ​​है कि इस स्थिति का एक कारण एक मूल निर्देशिका पर एक 'svn स्विच' है जो विफल रहता है (जैसा कि एक स्थानीय फ़ाइल के फ़ाइल के मामले में विफल रहता है) एक ही नाम, और नहीं - प्रवर्तन विकल्प), असफल होने के बाद सभी फाइलों को छोड़कर 'अन-स्विच्ड'।

इसीलिए (मूल मुद्दे को बाद में सही मानकर) उसी मूल निर्देशिका पर बाद में एक बार फिर 'svn स्विच' को हटा दिया जाएगा, जो शेष अन-स्विच्ड फ़ाइलों को एक नए रेपो पथ में बदल देगा।


3

इसका मतलब है कि आपने एक काम करने वाली कॉपी से दूसरे में स्विच किया है, उदाहरण के लिए आपने एक वर्किंग कॉपी की जांच की है, फिर एक कोड शाखा के खिलाफ तुलना करने के लिए इसे स्वैप किया है। इसे पूर्ववत् कैसे करें, इसके विवरण के लिए एसवीएन पुस्तक देखें।


1
ध्यान दें कि लिंक SVN पुस्तक के पुराने संस्करण का है। यहाँ कोशिश करें: svnbook.red-bean.com/en/1.5
एंड्रयू

अच्छी जगह। Google मुझे फिर से विफल करता है।
me_and

3

एक और तरीका है जिसमें इस स्थिति को प्राप्त किया जा सकता है - जो उम्मीद करता है कि किसी को इसे नीचे ट्रैक करने में कुछ समय बचाएगा।

मैंने अपने एसवीएन रूट में एक बाहरी पुस्तकालय को खोल दिया, और यह पता चला कि तीसरे पक्ष के लेखक ने गलती से अपने स्वयं के .svn फ़ोल्डर को अपने फ़ोल्डर में शामिल कर लिया है। यह निश्चित रूप से हमारे अपने, सही, तोड़फोड़ फ़ोल्डर को ओवरराइट करता है, और इस पृष्ठ पर अन्यत्र वर्णित के समान प्रभाव है - एक फ़ोल्डर अप्रत्याशित रूप से किसी अन्य शाखा में स्विच किया गया प्रतीत होता है।


1
हां, मेरे पास बस यही था। मैंने निर्देशिकाओं को हटाने के बिना एक परियोजना से दूसरे में माउस की एक निर्देशिका की प्रतिलिपि बनाई थी .svn। या तो उपयोग करने के लिए एक साफ निर्देशिका निर्यात करें, या कॉपी करने के बाद .svn निर्देशिकाओं को हटाएं और हटाएं, और यह svn addअनुमानित रूप से होगा ।
एरिक

1

"आइटम स्विच किया गया है।"

यदि आप अपनी वर्किंग कॉपी पर "svn स्विच" का उपयोग करते हैं जो इसे समझा सकता है?


मैं अब स्विच कमांड का उपयोग करने की कोशिश कर रहा हूं, लेकिन मुझे कभी भी स्थिति में 'एस' नहीं मिलता है .. क्या आपने स्विच किया है? और क्या आपने इसे किसी भी मुख्य धारा में नहीं किया है?
stiank81

0

मेरे लिए यह तब होता है जब "svn switch" कमांड बाधित होती है और इसे TortoriseSVN के साथ हल करने के लिए, मैं फ़ाइल पर सही क्लिक करता हूं और अभिभावक को वापस स्विच का चयन करता हूं


0

जब आप जारी करते हैं तो 'एस' से छुटकारा पाने का एक सरल उपाय

svn status

बस उस dir पर जाएं जिसे 'S' से चिह्नित किया गया है और छिपी हुई .svn निर्देशिका को हटा दें:

rm -rf .svn

बाद में सूत्रों के अनुसार '?' और आप आसानी से उन्हें नए सिरे से जोड़ सकते हैं:

svn पथ / / संसाधन जोड़ें


मेरे मामले में 'एस' ने संसाधनों के बगल में दिखाया, जो मैंने उसी सर्वर पर एक और रेपो से जोड़ा था, इसलिए मैंने ऊपर वर्णित समाधान को स्पष्ट किया था।
टॉरस्टेन बार्टेल

0

मेरे मामले में शाखा में दो उप-निर्देशिकाओं को ट्रंक में हटा दिया गया था। मैंने शीर्ष स्तर की निर्देशिका से शाखा को ट्रंक से स्विच किया, और फिर ट्रंक में वापस चला गया और उन उप-निर्देशिकाओं के साथ समस्या का अनुभव कर रहा हैS

मैंने एक गाइडलाइन के रूप में @ahnbizcad द्वारा उत्तर का उपयोग किया। उप-निर्देशिकाओं के मूल निर्देशिका (जो स्वयं शीर्ष स्तरीय निर्देशिका के अंतर्गत है) से:

svn sw <branch_url>

svn sw <trunk_url>


-6

मेरा सुझाव है कि आप इसकी आधिकारिक मदद पढ़ें, कोशिश करें:

svn st --help

या

svn st --help | grep S

'S' the item has a Switched URL relative to the parent

4
RTFM उस प्रश्न का उत्तर नहीं देता है, जो उस स्थिति से छुटकारा पाने के बारे में था।
मडॉक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.