Skip to content
Apothem
CLI संदर्भ

rollback

apothem rollback कमांड के लिए CLI संदर्भ।

किसी हार्नेस को उसके दर्ज इंस्टॉल से पहले की स्थिति में पुनर्स्थापित करें।

सारांश

apothem rollback --harness NAME|all [--install-id ULID | --last] [--yes]
                 [--project PATH]
                 [--quiet|-q] [--verbose|-v]
                 [--format plain|json] [--json] [--no-color]

rollback प्रत्येक चयनित हार्नेस को उस स्थिति में लौटाता है जिसमें वह दर्ज इंस्टॉल पास से पहले था — डिफ़ॉल्ट रूप से नवीनतम पास, या --install-id द्वारा नामित पास। उस इंस्टॉल के बही-खाता रिकॉर्ड पर काम करते हुए, सबसे नए परिवर्तन से शुरू करके, यह:

  • इंस्टॉल द्वारा अधिलेखित हर फ़ाइल और डायरेक्टरी को, इंस्टॉल द्वारा लिए गए बैकअप से, उसके दर्ज पथ पर पुनर्स्थापित करता है (इंस्टॉल द्वारा प्रतिस्थापित डायरेक्टरी ठीक वैसी ही पुनर्स्थापित होती है, उन फ़ाइलों के बिना जिन्हें इंस्टॉल ने उसमें जोड़ा था);
  • इंस्टॉल द्वारा बनाई गई हर फ़ाइल और डायरेक्टरी को हटाता है, और इंस्टॉल द्वारा साफ़ कर दिए गए किसी भी विरासत-लेआउट पथ को वापस रखता है;
  • इंस्टॉल द्वारा बनाए गए साझा डेटा स्टोर (memory, contexts, learning) को हटाता है, जब तक कि कोई अन्य इंस्टॉल किया गया हार्नेस अब भी उनका उपयोग न करता हो;
  • इंस्टॉल द्वारा बनाई गई डायरेक्टरियों को, खाली हो जाने पर, हटाता है।

आपकी होम डायरेक्टरी में कोई फ़ाइल या फ़ोल्डर जिसका अन्य इंस्टॉल भी उपयोग करते हैं (एक स्किल फ़ोल्डर, या ~/.config/apothem/) साझा डेटा स्टोर की तरह माना जाता है: रोलबैक उसे तब तक बनाए रखता है जब तक कोई अन्य इंस्टॉल अब भी उसे सूचीबद्ध करता है, और उसे केवल उसका उपयोग करने वाले अंतिम इंस्टॉल के लिए पुनर्स्थापित करता है या हटाता है। जो फ़ोल्डर इस इंस्टॉल को पहले से अपनी जगह पर मिला (पहले टूल के बाद इंस्टॉल किया गया दूसरा टूल), वह उसका उपयोग करने वाले अंतिम इंस्टॉल के साथ चला जाता है जब उसे किसी ऐसे इंस्टॉल ने बनाया हो जिसने तब से उसे छोड़ दिया है, ताकि हर टूल को रोल बैक करने पर कुछ भी पीछे न छूटे। जब किसी ऐसे इंस्टॉल का रिकॉर्ड, जो फ़ोल्डर का उपयोग कर सकता है, पढ़ा नहीं जा सकता, तो रोलबैक कुछ भी बदलने से पहले एक त्रुटि के साथ रुक जाता है और कोई rollback रिकॉर्ड नहीं लिखता; रिकॉर्ड की मरम्मत करें और उसे फिर से चलाएँ।

रोलबैक जो कुछ भी हटाता या प्रतिस्थापित करता है, उसे पहले Apothem बैकअप रूट (~/.apothem/backups/) में कॉपी किया जाता है, ताकि रोलबैक को भी हाथ से पूर्ववत किया जा सके। इसके बाद रोलबैक हार्नेस बही-खाते में एक rollback रिकॉर्ड जोड़ता है। किसी पुराने इंस्टॉल को रोल बैक करने से केवल वे टारगेट पुनर्स्थापित होते हैं या हटते हैं जो उस पुराने इंस्टॉल ने दर्ज किए थे, और उसी रूट पर उसके बाद के हर इंस्टॉल को बही-खाते के सक्रिय इंस्टॉल से हटा दिया जाता है। बाद के इंस्टॉल द्वारा उन टारगेट के बाहर जोड़ी गई फ़ाइलें अपनी जगह पर रहती हैं।

बही-खाता प्रति इंस्टॉल रूट नवीनतम 10 इंस्टॉल रिकॉर्ड रखता है (उन बैकअप के साथ जिनका वे संदर्भ देते हैं); इससे पुराने इंस्टॉल को अब id द्वारा रोल बैक नहीं किया जा सकता और वह rollback.no_record रिपोर्ट करता है। apothem backups prune माँग पर उस सीमा को घटाता है, और उस बैकअप को कभी नहीं हटाता जिससे नवीनतम इंस्टॉल पुनर्स्थापित होता है।

इस व्यवहार के जोड़े जाने से पहले की किसी Apothem रिलीज़ द्वारा लिखे गए रिकॉर्ड यह सूचीबद्ध नहीं करते कि इंस्टॉल ने कौन-सी फ़ाइलें बनाईं; ऐसे रिकॉर्ड को रोल बैक करने से केवल अधिलेखित फ़ाइलें पुनर्स्थापित होती हैं।

जब तक --yes न दिया जाए, प्रत्येक हार्नेस के लिए पुष्टि माँगी जाती है। जब कोई प्रॉम्प्ट संभव नहीं होता — --format json (प्रॉम्प्ट टेक्स्ट एकल JSON दस्तावेज़ को दूषित कर देगा) या कोई गैर-इंटरैक्टिव शेल (कोई TTY नहीं) — तब कमांड, जब तक --yes न दिया जाए, शुरुआत में ही एक संरचित rollback.confirmation_required त्रुटि (निकास 1) के साथ अस्वीकार कर देता है। --install-id और --last इंस्टॉल पास का चयन करते हैं और परस्पर अनन्य हैं।

--harness all रोलबैक जानबूझकर संपूर्ण है: यह हर पंजीकृत हार्नेस को कवर करता है, उन हार्नेसों सहित जिन्हें प्रोफ़ाइल का exclude_harnesses इंस्टॉल के दौरान छोड़ देता है — इंस्टॉल-पूर्व स्थिति को पुनर्स्थापित करना एक सफ़ाई संचालन है, इसलिए यह उन रिकॉर्डों तक पहुँचता है जो किसी पिछले, व्यापकतर इंस्टॉल ने छोड़े हों। जिस हार्नेस का कोई दर्ज इंस्टॉल नहीं है, वह results में एक "outcome": "error" पंक्ति के रूप में विफल होता है (JSON आउटपुट देखें), और रन शेष हार्नेसों के साथ जारी रहता है। इसके बाद कमांड 1 के साथ बाहर निकलता है जब कुछ भी रोलबैक नहीं हुआ हो, या 2 (आंशिक परिणाम) के साथ जब कम से कम एक टारगेट रोलबैक हुआ हो और साथ ही एक विफलता भी दर्ज हुई हो।

विकल्प

विकल्पविवरण
--harness NAMEरोल बैक करने के लिए हार्नेस अडैप्टर, या रजिस्ट्री-व्यापी सेट के लिए all (आवश्यक)।
--install-id ULIDनामित इंस्टॉल पास को रोल बैक करता है। डिफ़ॉल्ट नवीनतम दर्ज इंस्टॉल है।
--lastनवीनतम दर्ज इंस्टॉल को रोल बैक करता है (डिफ़ॉल्ट; स्पष्ट रूप)। --install-id के साथ परस्पर अनन्य।
--yesप्रति-हार्नेस पुष्टि प्रॉम्प्ट छोड़ता है।
--project PATHप्रोजेक्ट-स्कोप हार्नेसों के लिए प्रोजेक्ट रूट। चयनित सेट में प्रोजेक्ट-स्कोप अडैप्टर शामिल होने पर आवश्यक।
--quiet, -qसूचनात्मक आउटपुट दबाता है; केवल त्रुटियाँ उत्सर्जित होती हैं।
--verbose, -vअतिरिक्त निदान आउटपुट उत्सर्जित करता है।
--format plain|jsonआउटपुट प्रारूप (डिफ़ॉल्ट: plain)।
--json--format json का संक्षिप्त रूप।
--no-colorआउटपुट में ANSI रंग कोड अक्षम करता है।
-h, --helpसहायता दिखाता है और बाहर निकलता है।

JSON आउटपुट

यह उदाहरण एक नामित हार्नेस के लिए आउटपुट का ढाँचा (envelope) है। --harness all के अंतर्गत harness का मान all है, output_path का मान null है, और results में चुने गए हर हार्नेस की पंक्तियाँ होती हैं।

{
  "schema_version": 1,
  "status": "success",
  "command": "rollback",
  "action": "rolled_back",
  "harness": "claude-code",
  "profile_path": null,
  "project": null,
  "files_written": [],
  "results": [],
  "warnings": [],
  "error": null,
  "output_path": "C:\\Users\\Example\\.claude\\settings.json"
}

प्रत्येक पुनर्स्थापित या हटाया गया टारगेट results में "operation": "rollback" और created या updated वाले outcome के साथ दिखाई देता है (और files_written में भी); message बताता है कि पथ पुनर्स्थापित हुआ या हटाया गया। विफल पुनर्स्थापना (उदाहरण के लिए, कोई बैकअप जो हटा दिया गया था) "outcome": "error" होती है। जिस इंस्टॉल ने कोई परिवर्तन दर्ज नहीं किया, उसकी रिपोर्ट "outcome": "skipped" के साथ की जाती है। जब किसी एकल नामित हार्नेस के लिए कोई मेल खाने वाला इंस्टॉल रिकॉर्ड मौजूद नहीं होता, तो कमांड "status": "error" के साथ एक rollback.no_record त्रुटि रिपोर्ट करता है। --harness all के अंतर्गत, जिस हार्नेस का कोई मेल खाने वाला रिकॉर्ड नहीं है, वह इसके बजाय results में एक "outcome": "error" पंक्ति होता है।

उदाहरण

apothem rollback --harness claude-code --last
apothem rollback --harness claude-code --install-id 01J9Z… --yes
apothem rollback --harness cursor --project . --last --json

निकास कोड

कोडअर्थ
0सफलतापूर्वक रोल बैक हुआ, या रोल बैक करने के लिए कुछ नहीं था (इंस्टॉल ने कोई परिवर्तन दर्ज नहीं किया)
1अपेक्षित त्रुटि — कोई इंस्टॉल रिकॉर्ड नहीं, परस्पर विरोधी चयनकर्ता, अज्ञात हार्नेस, लुप्त प्रोजेक्ट रूट, या पुष्टि अस्वीकृत या अनुपलब्ध (--yes के बिना गैर-इंटरैक्टिव या JSON मोड)
2आंशिक परिणाम — कम से कम एक टारगेट रोल बैक हुआ और एक विफलता भी दर्ज हुई (कोई विफल पुनर्स्थापना या, --harness all के अंतर्गत, कोई ऐसा हार्नेस जिसका कोई इंस्टॉल रिकॉर्ड नहीं है)
64उपयोग त्रुटि: कोई अज्ञात विकल्प या कमांड, या कोई लुप्त या अमान्य विकल्प मान। --json के अंतर्गत त्रुटि cli.usage कोड वाला एक JSON एनवेलप होती है।

यह भी देखें

  • apothem install — हार्नेस कॉन्फ़िगरेशन इंस्टॉल करें
  • apothem update — वर्तमान साझा प्रोफ़ाइल से फिर से इंस्टॉल करें
  • apothem uninstall — हार्नेस कॉन्फ़िगरेशन हटाएँ
  • apothem status — इंस्टॉल, सत्यापन और ड्रिफ़्ट स्थिति की रिपोर्ट करें

On this page