From d6d0cd6de33bb2be8b4a2ce71a92eebe861bd8e1 Mon Sep 17 00:00:00 2001 From: gmatht Date: Wed, 25 Mar 2026 02:32:55 +0800 Subject: [PATCH] cli: expand repo::archive parse errors with corrected command lines When --repo uses legacy repo::archive syntax, show list and repo-info style examples. --- src/borg/helpers/parseformat.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/borg/helpers/parseformat.py b/src/borg/helpers/parseformat.py index bb38092d0..fd8ffbe52 100644 --- a/src/borg/helpers/parseformat.py +++ b/src/borg/helpers/parseformat.py @@ -616,6 +616,19 @@ class Location: self.raw = text # as given by user, might contain placeholders self.processed = replace_placeholders(self.raw, overrides) # after placeholder replacement + if "::" in self.processed: + repo, archive = self.processed.split("::", 1) + raise ValueError( + f'Invalid location format: "{self.processed}". ' + "Borg 2 does not accept repo::archive syntax. " + "Corrected command lines:\n" + f"borg -r {repo} list {archive}\n" + f"export BORG_REPO={repo}\n" + f"borg list {archive}\n" + f"borg -r {repo} repo-info\n" + f"export BORG_REPO={repo}\n" + f"borg repo-info" + ) valid = self._parse(self.processed) if valid: self.valid = True