* git checkout --autostash and git branch --autopop @ 2019-12-12 12:19 rottis 2019-12-12 18:09 ` Denton Liu 0 siblings, 1 reply; 7+ messages in thread From: rottis @ 2019-12-12 12:19 UTC (permalink / raw) To: git Hello, I'm not sure if this has been discussed in the past, but I would like to humbly request this feature. Let me explain: Similar to the 'git rebase --autostash', running 'git checkout --autostash' would automatically stash uncommitted changes for the current branch. then running 'git branch --autopop' would automatically apply an automatic stash when switching to a branch that had one. Thank you. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git checkout --autostash and git branch --autopop 2019-12-12 12:19 git checkout --autostash and git branch --autopop rottis @ 2019-12-12 18:09 ` Denton Liu 2019-12-12 18:12 ` Denton Liu 2019-12-12 22:02 ` Philip Oakley 0 siblings, 2 replies; 7+ messages in thread From: Denton Liu @ 2019-12-12 18:09 UTC (permalink / raw) To: rottis; +Cc: git Hi rottis, On Thu, Dec 12, 2019 at 02:19:50PM +0200, rottis@fea.st wrote: > Similar to the 'git rebase --autostash', running 'git checkout --autostash' would automatically stash uncommitted changes for the > current branch. then running 'git branch --autopop' would automatically apply an automatic stash when switching to a branch that had one. I currently have a WIP version of this feature but I haven't had enough time to polish it off (tests and docs). The last RFC round can be seen here[1] if you want to test it out. It seems to work well enough for personal use. [1]: https://lore.kernel.org/git/cover.1571246693.git.liu.denton@gmail.com/ ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git checkout --autostash and git branch --autopop 2019-12-12 18:09 ` Denton Liu @ 2019-12-12 18:12 ` Denton Liu 2019-12-12 22:02 ` Philip Oakley 1 sibling, 0 replies; 7+ messages in thread From: Denton Liu @ 2019-12-12 18:12 UTC (permalink / raw) To: rottis; +Cc: git On Thu, Dec 12, 2019 at 10:09:01AM -0800, Denton Liu wrote: > Hi rottis, > > On Thu, Dec 12, 2019 at 02:19:50PM +0200, rottis@fea.st wrote: > > Similar to the 'git rebase --autostash', running 'git checkout --autostash' would automatically stash uncommitted changes for the > > current branch. then running 'git branch --autopop' would automatically apply an automatic stash when switching to a branch that had one. > > I currently have a WIP version of this feature but I haven't had enough > time to polish it off (tests and docs). The last RFC round can be seen > here[1] if you want to test it out. It seems to work well enough for > personal use. Sorry, my mistake. I misread your message; my topic was for `git merge --autostash`. However, it does generalise the autostash machinery so perhaps it'll be simpler to implement it into checkout in the future, if that's desired? ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git checkout --autostash and git branch --autopop 2019-12-12 18:09 ` Denton Liu 2019-12-12 18:12 ` Denton Liu @ 2019-12-12 22:02 ` Philip Oakley 2019-12-13 17:16 ` Junio C Hamano 1 sibling, 1 reply; 7+ messages in thread From: Philip Oakley @ 2019-12-12 22:02 UTC (permalink / raw) To: Denton Liu, rottis; +Cc: git On 12/12/2019 18:09, Denton Liu wrote: > Hi rottis, > > On Thu, Dec 12, 2019 at 02:19:50PM +0200, rottis@fea.st wrote: >> Similar to the 'git rebase --autostash', running 'git checkout --autostash' would automatically stash uncommitted changes for the >> current branch. then running 'git branch --autopop' would automatically apply an automatic stash when switching to a branch that had one. > I currently have a WIP version of this feature but I haven't had enough > time to polish it off (tests and docs). The last RFC round can be seen > here[1] if you want to test it out. It seems to work well enough for > personal use. > > [1]: https://lore.kernel.org/git/cover.1571246693.git.liu.denton@gmail.com/ Isn't this meant to be something similar to the --no-merge option for checkout. That is: I am where I am, but really I want this to be on branch X. Or is the --no-merge option meant to be something else? -- Philip ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git checkout --autostash and git branch --autopop 2019-12-12 22:02 ` Philip Oakley @ 2019-12-13 17:16 ` Junio C Hamano 2019-12-14 11:12 ` Philip Oakley 0 siblings, 1 reply; 7+ messages in thread From: Junio C Hamano @ 2019-12-13 17:16 UTC (permalink / raw) To: Philip Oakley; +Cc: Denton Liu, rottis, git Philip Oakley <philipoakley@iee.email> writes: > Isn't this meant to be something similar to the --no-merge option for > checkout. That is: I am where I am, but really I want this to be on > branch X. Or is the --no-merge option meant to be something else? Is there a --no-merge option to "git checkout"? I know the reason why I invented "git checkout --merge" was because I wanted the command to carry more changes in the working tree than the default behaviour would while checking out another branch, but I do not think I added an option to do less, i.e. forbid it from carrying any change in the working tree while checking out another branch. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: git checkout --autostash and git branch --autopop 2019-12-13 17:16 ` Junio C Hamano @ 2019-12-14 11:12 ` Philip Oakley [not found] ` <DA212C7D-D8D4-4E68-8C29-AF68364653E9@ssl-mail.com> 0 siblings, 1 reply; 7+ messages in thread From: Philip Oakley @ 2019-12-14 11:12 UTC (permalink / raw) To: Junio C Hamano; +Cc: Denton Liu, rottis, git On 13/12/2019 17:16, Junio C Hamano wrote: > Philip Oakley <philipoakley@iee.email> writes: > >> Isn't this meant to be something similar to the --no-merge option for >> checkout. That is: I am where I am, but really I want this to be on >> branch X. Or is the --no-merge option meant to be something else? > Is there a --no-merge option to "git checkout"? My mistake. I misremembered or misunderstood. I'd been looking at both checkout and branch man pages to see if there was a way out of the do the 'rewind current branch and create new branch at current state' dance. I thought I'd seen 'no-merge' as a 'checkout -b' style option. > I know the reason > why I invented "git checkout --merge" was because I wanted the > command to carry more changes in the working tree than the default > behaviour would while checking out another branch, but I do not > think I added an option to do less, i.e. forbid it from carrying any > change in the working tree while checking out another branch. For creating a new branch when in a dirty state (based on some other start point than HEAD), there should be an option for numpties that have already started digging the hole for themselves (stick's hand up apologetically)... I was hoping that @rottis would clarify if his request has the same symptoms. -- Philip ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <DA212C7D-D8D4-4E68-8C29-AF68364653E9@ssl-mail.com>]
* Re: git checkout --autostash and git branch --autopop [not found] ` <DA212C7D-D8D4-4E68-8C29-AF68364653E9@ssl-mail.com> @ 2019-12-14 12:58 ` Philip Oakley 0 siblings, 0 replies; 7+ messages in thread From: Philip Oakley @ 2019-12-14 12:58 UTC (permalink / raw) To: Eeli, Git List; +Cc: Junio C Hamano, Denton Liu Hi Eeli, thanks for the clarification cc'ing the list. On 14/12/2019 11:58, Eeli wrote: > Often in my work I need to checkout my coworkers’ branches. When that happens, I will likely have some uncommitted changes I would need to commit or stash. > > This purely an ergonomic feature I’m suggesting. > > So instead of git stash or git commit -m ”wip” and later git stash pop or git reset HEAD~1, I could just run git checkout -b —autostash other-branch, do the work on the other branch and return to my previous state with git checkout —autopop my-branch. Also, c/would a detached head (rather than using -b) be part of the options if you are just doing a review? > > Apologies if I messed up my Git usage, I have used Git through Magit for too long. > >> On 14. Dec 2019, at 1.12 PM, Philip Oakley <philipoakley@iee.email> wrote: >> >> On 13/12/2019 17:16, Junio C Hamano wrote: >>> Philip Oakley <philipoakley@iee.email> writes: >>> >>>> Isn't this meant to be something similar to the --no-merge option for >>>> checkout. That is: I am where I am, but really I want this to be on >>>> branch X. Or is the --no-merge option meant to be something else? >>> Is there a --no-merge option to "git checkout"? >> My mistake. I misremembered or misunderstood. I'd been looking at both >> checkout and branch man pages to see if there was a way out of the do >> the 'rewind current branch and create new branch at current state' >> dance. I thought I'd seen 'no-merge' as a 'checkout -b' style option. >> >>> I know the reason >>> why I invented "git checkout --merge" was because I wanted the >>> command to carry more changes in the working tree than the default >>> behaviour would while checking out another branch, but I do not >>> think I added an option to do less, i.e. forbid it from carrying any >>> change in the working tree while checking out another branch. >> For creating a new branch when in a dirty state (based on some other >> start point than HEAD), there should be an option for numpties that have >> already started digging the hole for themselves (stick's hand up >> apologetically)... >> >> I was hoping that @rottis would clarify if his request has the same >> symptoms. >> >> -- >> >> Philip ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-12-14 12:59 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-12 12:19 git checkout --autostash and git branch --autopop rottis
2019-12-12 18:09 ` Denton Liu
2019-12-12 18:12 ` Denton Liu
2019-12-12 22:02 ` Philip Oakley
2019-12-13 17:16 ` Junio C Hamano
2019-12-14 11:12 ` Philip Oakley
[not found] ` <DA212C7D-D8D4-4E68-8C29-AF68364653E9@ssl-mail.com>
2019-12-14 12:58 ` Philip Oakley
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox