# [ANN] git-branchstack: make pull-requests without switching branches

3 messages from 2021-10-18 to 2021-10-18. Participants: Johannes Altmanninger, Junio C Hamano.
Thread: https://gitlist.dev/t/56735

## Johannes Altmanninger, 2021-10-18 19:57

Subject: [ANN] git-branchstack: make pull-requests without switching branches
Message-ID: <20211018195755.pcdpx6xyjeawttyu@gmail.com>
URL: https://gitlist.dev/e/20211018195755.pcdpx6xyjeawttyu%40gmail.com

```
I like to keep all in-flight commits in a single local branch, so I can test
them in combination and update them easily. git-branchstack allows me to
send select commits upstream as pull requests (for projects that don't accept
patches).  By never touching the worktree, it avoids invalidating builds. See

	https://github.com/krobelus/git-branchstack

To implement this I needed a way to reword (change the commit
message) and reparent commits.  I used the "rebase" function from [git
revise](https://git-revise.readthedocs.io/).  Unlike "git merge-tree"
this can change commit messages, and allows me to resolve conflicts using a
temporary file.  I didn't find another easy way to do this (without touching
my worktree/index).  Is there a plumbing command I can use to create a copy
of a commit, but with a different commit message?

I wonder if there are more use cases for creating/updating commits that are
not on the current branch.
Future "git rebase -i" should only update worktree files when needed (see the
"TODO:" comments in sequencer.c).  Rewording never needs that, so it could,
in theory, work on branches that are not checked out, though that would
complicate the rebase UI even more.

```

## Junio C Hamano, 2021-10-18 20:29

Subject: Re: [ANN] git-branchstack: make pull-requests without switching branches
Message-ID: <xmqqo87mulex.fsf@gitster.g>
URL: https://gitlist.dev/e/xmqqo87mulex.fsf%40gitster.g
In-Reply-To: <20211018195755.pcdpx6xyjeawttyu@gmail.com>

```
Johannes Altmanninger <aclopte@gmail.com> writes:

> I wonder if there are more use cases for creating/updating commits that are
> not on the current branch.

I think the canonical answer to that question is "git worktree add"?

```

## Johannes Altmanninger, 2021-10-18 21:04

Subject: Re: [ANN] git-branchstack: make pull-requests without switching branches
Message-ID: <20211018210450.law3hfps3mydoqhe@gmail.com>
URL: https://gitlist.dev/e/20211018210450.law3hfps3mydoqhe%40gmail.com
In-Reply-To: <xmqqo87mulex.fsf@gitster.g>

```
On Mon, Oct 18, 2021 at 01:29:10PM -0700, Junio C Hamano wrote:
> Johannes Altmanninger <aclopte@gmail.com> writes:
> 
> > I wonder if there are more use cases for creating/updating commits that are
> > not on the current branch.
> 
> I think the canonical answer to that question is "git worktree add"?

True. Cherry-picking a bunch of commits can be much slower than just
creating the commit objects but I don't think that's a problem.

```
