Re: [PATCH] branch: add support for --dry-run option
Scott Schmit schrieb am 22.01.2015 um 02:37: On Mon, Jan 19, 2015 at 03:20:51PM +0100, Michael J Gruber wrote: Alexander Kuleshov schrieb am 17.01.2015 um 08:35: This patch adds support -d/--dry-run option for branch(es) deletion. If -d/--dry-run option passed to git branch -d branch..., branch(es) will not be removed, instead just print list of branches that are to be removed. For example: $ git branch a b c * master $ git branch -d -n a b c delete branch 'a' (261c0d1) delete branch 'b' (261c0d1) delete branch 'c' (261c0d1) Is there a case where deleting a b c would not delete a b c? Sure: $ cd /tmp/ $ git init foo Initialized empty Git repository in /tmp/foo/.git/ $ cd foo/ $ touch .gitignore $ git add .gitignore $ git commit -m init [master (root-commit) fde5138] init 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .gitignore $ git checkout -b a Switched to a new branch 'a' $ git branch -d a error: Cannot delete the branch 'a' which you are currently on. $ touch file $ git add file $ git commit -m 'add file' [a e2c2ece] add file 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 file $ git checkout -b b master Switched to a new branch 'b' $ git branch -d a error: The branch 'a' is not fully merged. If you are sure you want to delete it, run 'git branch -D a'. Yes, and that is something that should go into the commit message. Why do you want to add --dry-run? Because -d deletes only fully merged branches. It should have been there in the 1st place, rather than forcing us to ask the question that always needs to answered for a patch: What is the intention? What is it good for? In this case, we have other means to accomplish the same (--list -v), and they are more natural if you want get information about the state of the branches (list verbose) than doing delete dry-run. Michael -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] branch: add support for --dry-run option
On Mon, Jan 19, 2015 at 03:20:51PM +0100, Michael J Gruber wrote: Alexander Kuleshov schrieb am 17.01.2015 um 08:35: This patch adds support -d/--dry-run option for branch(es) deletion. If -d/--dry-run option passed to git branch -d branch..., branch(es) will not be removed, instead just print list of branches that are to be removed. For example: $ git branch a b c * master $ git branch -d -n a b c delete branch 'a' (261c0d1) delete branch 'b' (261c0d1) delete branch 'c' (261c0d1) Is there a case where deleting a b c would not delete a b c? Sure: $ cd /tmp/ $ git init foo Initialized empty Git repository in /tmp/foo/.git/ $ cd foo/ $ touch .gitignore $ git add .gitignore $ git commit -m init [master (root-commit) fde5138] init 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .gitignore $ git checkout -b a Switched to a new branch 'a' $ git branch -d a error: Cannot delete the branch 'a' which you are currently on. $ touch file $ git add file $ git commit -m 'add file' [a e2c2ece] add file 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 file $ git checkout -b b master Switched to a new branch 'b' $ git branch -d a error: The branch 'a' is not fully merged. If you are sure you want to delete it, run 'git branch -D a'. -- Scott Schmit smime.p7s Description: S/MIME cryptographic signature
Re: [PATCH] branch: add support for --dry-run option
Alexander Kuleshov schrieb am 17.01.2015 um 08:35: This patch adds support -d/--dry-run option for branch(es) deletion. If -d/--dry-run option passed to git branch -d branch..., branch(es) will not be removed, instead just print list of branches that are to be removed. For example: $ git branch a b c * master $ git branch -d -n a b c delete branch 'a' (261c0d1) delete branch 'b' (261c0d1) delete branch 'c' (261c0d1) Is there a case where deleting a b c would not delete a b c? In other words: What new information does a dry-run give the user, other than what branch --list -v would give already? (We could need a shortcut on the latter, but that is a different topic.) Michael -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] branch: add support for --dry-run option
From: Alexander Kuleshov kuleshovm...@gmail.com This patch adds support -d/--dry-run option for branch(es) deletion. If -d/--dry-run option passed to git branch -d branch..., branch(es) surely s|-d/--dry-run|-n/--dry-run| -n is the short version of --dryrun. -d is already in use. will not be removed, instead just print list of branches that are to be removed. [...] -- Philip -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] branch: add support for --dry-run option
This patch adds support -d/--dry-run option for branch(es) deletion. If -d/--dry-run option passed to git branch -d branch..., branch(es) will not be removed, instead just print list of branches that are to be removed. For example: $ git branch a b c * master $ git branch -d -n a b c delete branch 'a' (261c0d1) delete branch 'b' (261c0d1) delete branch 'c' (261c0d1) Signed-off-by: Alexander Kuleshov kuleshovm...@gmail.com --- Documentation/git-branch.txt | 11 +-- builtin/branch.c | 13 + 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index 311b336..32ea581 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -16,7 +16,7 @@ SYNOPSIS 'git branch' (--set-upstream-to=upstream | -u upstream) [branchname] 'git branch' --unset-upstream [branchname] 'git branch' (-m | -M) [oldbranch] newbranch -'git branch' (-d | -D) [-r] branchname... +'git branch' (-d | -D) [--dry-run | -n] [-r] branchname... 'git branch' --edit-description [branchname] DESCRIPTION @@ -63,7 +63,9 @@ to happen. With a `-d` or `-D` option, `branchname` will be deleted. You may specify more than one branch for deletion. If the branch currently -has a reflog then the reflog will also be deleted. +has a reflog then the reflog will also be deleted. If passed `-n` or +`--dry-run` option, branch(es) will be not removed, but show a list of +branches that are to be removed. Use `-r` together with `-d` to delete remote-tracking branches. Note, that it only makes sense to delete remote-tracking branches if they no longer exist @@ -83,6 +85,11 @@ OPTIONS -D:: Delete a branch irrespective of its merged status. +-n:: +--dry-run:: + Don't remove the branch(es), but show a list of branches that are + to be removed. + -l:: --create-reflog:: Create the branch's reflog. This activates recording of diff --git a/builtin/branch.c b/builtin/branch.c index d8949cb..4a35a2f 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -61,6 +61,7 @@ static unsigned char merge_filter_ref[20]; static struct string_list output = STRING_LIST_INIT_DUP; static unsigned int colopts; +static int branch_delete_show_only; static int parse_branch_color_slot(const char *slot) { @@ -255,6 +256,17 @@ static int delete_branches(int argc, const char **argv, int force, int kinds, continue; } + if (branch_delete_show_only) { + printf(remote_branch + ? _(delete remote branch '%s' (%s)\n) + : _(delete branch '%s' (%s)\n), + bname.buf, + (flags REF_ISBROKEN) ? broken + : (flags REF_ISSYMREF) ? target + : find_unique_abbrev(sha1, DEFAULT_ABBREV)); + continue; + } + if (delete_ref(name, sha1, REF_NODEREF)) { error(remote_branch ? _(Error deleting remote branch '%s') @@ -840,6 +852,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix) REF_REMOTE_BRANCH | REF_LOCAL_BRANCH), OPT_BIT('d', delete, delete, N_(delete fully merged branch), 1), OPT_BIT('D', NULL, delete, N_(delete branch (even if not merged)), 2), + OPT__DRY_RUN(branch_delete_show_only, N_(dry run)), OPT_BIT('m', move, rename, N_(move/rename a branch and its reflog), 1), OPT_BIT('M', NULL, rename, N_(move/rename a branch, even if target exists), 2), OPT_BOOL(0, list, list, N_(list branch names)), -- 2.3.0.rc0.286.ga3dc223.dirty -- To unsubscribe from this list: send the line unsubscribe git in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html