-
Suggestion
-
Resolution: Unresolved
-
None
-
None
-
None
-
OSX 10.9.5
Interactive rebase workflow is such that accidentally reordering the commits or otherwise bolloxing up the work is FAR TOO EASY.
Here's a better workflow:
Select a range of commits e.g. with mouse click.
Popup menu -> "Squash N commits"
done.
/*****************************/
After farting around some more with current squashing workflow, I find some VERY ANNOYING and seemingly stupid things:
1. After a few "squash with previous" clicks, all of which seemed to take OK, I finish with the interactive sheet.
2. I get some utterly obscure message "could not squash commit abc123....." . Fine, whatever.
3. At this point the squash workflow is bolloxed up. I can't commit, I can't continue, I can't undo. Any action I take (if it has meaningful action) just pops up the same "could not squash commit abc123....".
4. If I try another interactive rebase (BTW, the popup and main menu states at this point are OUT OF SYNC – one is live, the other is disabled), I get a somewhat less obscure message "hmmm, looks like you are in the middle of a rebase already, so I won't do anything, but you can 'rm -rf /path/to/.git/rebase/folder' and then try again".
5. I don't have any obvious workflow that would force the squash or abort or fix it or ANYTHING.
SO, here's how it should work.
If I squash or attempt to squash a commit and git isn't going to like it, THEN YOU SHOULD BLOCK THE ACTION AND LET ME KNOW RIGHT AWAY, e.g. give me buttons like "OK, wrap up this squash" or "abort this squash" or "omit this commit from squash".
If there is some obscure git reason that some commit is unacceptable, YOU SHOULD INCLUDE SOME MEANINGFUL INFO ABOUT WTF IS GOING ON, AND HOW TO GET AROUND IT, OR WHY IT'S A BAD THING TO DO, etc.
more complaints later. I would like this workflow to work easily and smoothly.
/*****************************/
amending the above use case with one commit that git (or Sourcetree) doesn't like, in the midsts of several other commits that are (presumably) A-OK to squash.
For commits
{0 .. N-1}, N,
{N+1 .. M}where N is the commit that causes grief, JUST SQUASH THE FIRST SET AND THE FINAL SET. LEAVE "N" IN PLACE UNSQUASHED.
[SRCTREE-3046] Interactive rebase feature is VERY clunky.
Workflow | Original: JAC Suggestion Workflow [ 3371629 ] | New: JAC Suggestion Workflow 3 [ 3671822 ] |
Status | Original: RESOLVED [ 5 ] | New: Closed [ 6 ] |
Workflow | Original: SourceTree Bug Workflow [ 857561 ] | New: JAC Suggestion Workflow [ 3371629 ] |
Status | Original: Open [ 1 ] | New: Resolved [ 5 ] |
Issue Type | Original: New Feature [ 2 ] | New: Suggestion [ 10000 ] |
Symptom Severity | New: Minor [ 14432 ] |
Description |
Original:
Interactive rebase workflow is such that accidentally reordering the commits or otherwise bolloxing up the work is FAR TOO EASY.
Here's a better workflow: Select a range of commits e.g. with mouse click. Popup menu -> "Squash N commits" done. /*****************************/ After farting around some more with current squashing workflow, I find some VERY ANNOYING and seemingly stupid things: 1. After a few "squash with previous" clicks, all of which seemed to take OK, I finish with the interactive sheet. 2. I get some utterly obscure message "could not squash commit abc123....." . Fine, whatever. 3. At this point the squash workflow is bolloxed up. I can't commit, I can't continue, I can't undo. Any action I take (if it has meaningful action) just pops up the same "could not squash commit abc123....". 4. If I try another interactive rebase (BTW, the popup and main menu states at this point are OUT OF SYNC -- one is live, the other is disabled), I get a somewhat less obscure message "hmmm, looks like you are in the middle of a rebase already, so I won't do anything, but you can 'rm -rf /path/to/.git/rebase/folder' and then try again". 5. I don't have any obvious workflow that would force the squash or abort or fix it or ANYTHING. SO, here's how it should work. If I squash or attempt to squash a commit and git isn't going to like it, THEN YOU SHOULD BLOCK THE ACTION AND LET ME KNOW RIGHT AWAY, e.g. give me buttons like "OK, wrap up this squash" or "abort this squash" or "omit this commit from squash". If there is some obscure git reason that some commit is unacceptable, YOU SHOULD INCLUDE SOME MEANINGFUL INFO ABOUT WTF IS GOING ON, AND HOW TO GET AROUND IT, OR WHY IT'S A BAD THING TO DO, etc. more complaints later. I would like this workflow to work easily and smoothly. |
New:
Interactive rebase workflow is such that accidentally reordering the commits or otherwise bolloxing up the work is FAR TOO EASY.
Here's a better workflow: Select a range of commits e.g. with mouse click. Popup menu -> "Squash N commits" done. /*****************************/ After farting around some more with current squashing workflow, I find some VERY ANNOYING and seemingly stupid things: 1. After a few "squash with previous" clicks, all of which seemed to take OK, I finish with the interactive sheet. 2. I get some utterly obscure message "could not squash commit abc123....." . Fine, whatever. 3. At this point the squash workflow is bolloxed up. I can't commit, I can't continue, I can't undo. Any action I take (if it has meaningful action) just pops up the same "could not squash commit abc123....". 4. If I try another interactive rebase (BTW, the popup and main menu states at this point are OUT OF SYNC -- one is live, the other is disabled), I get a somewhat less obscure message "hmmm, looks like you are in the middle of a rebase already, so I won't do anything, but you can 'rm -rf /path/to/.git/rebase/folder' and then try again". 5. I don't have any obvious workflow that would force the squash or abort or fix it or ANYTHING. SO, here's how it should work. If I squash or attempt to squash a commit and git isn't going to like it, THEN YOU SHOULD BLOCK THE ACTION AND LET ME KNOW RIGHT AWAY, e.g. give me buttons like "OK, wrap up this squash" or "abort this squash" or "omit this commit from squash". If there is some obscure git reason that some commit is unacceptable, YOU SHOULD INCLUDE SOME MEANINGFUL INFO ABOUT WTF IS GOING ON, AND HOW TO GET AROUND IT, OR WHY IT'S A BAD THING TO DO, etc. more complaints later. I would like this workflow to work easily and smoothly. /*****************************/ amending the above use case with one commit that git (or Sourcetree) doesn't like, in the midsts of several other commits that are (presumably) A-OK to squash. For commits {0 .. N-1}, N, {N+1 .. M} where N is the commit that causes grief, JUST SQUASH THE FIRST SET AND THE FINAL SET. LEAVE "N" IN PLACE UNSQUASHED. |
Description |
Original:
Interactive rebase workflow is such that accidentally reordering the commits or otherwise bolloxing up the work is FAR TOO EASY.
Here's a better workflow: Select a range of commits e.g. with mouse click. Popup menu -> "Squash N commits" done. |
New:
Interactive rebase workflow is such that accidentally reordering the commits or otherwise bolloxing up the work is FAR TOO EASY.
Here's a better workflow: Select a range of commits e.g. with mouse click. Popup menu -> "Squash N commits" done. /*****************************/ After farting around some more with current squashing workflow, I find some VERY ANNOYING and seemingly stupid things: 1. After a few "squash with previous" clicks, all of which seemed to take OK, I finish with the interactive sheet. 2. I get some utterly obscure message "could not squash commit abc123....." . Fine, whatever. 3. At this point the squash workflow is bolloxed up. I can't commit, I can't continue, I can't undo. Any action I take (if it has meaningful action) just pops up the same "could not squash commit abc123....". 4. If I try another interactive rebase (BTW, the popup and main menu states at this point are OUT OF SYNC -- one is live, the other is disabled), I get a somewhat less obscure message "hmmm, looks like you are in the middle of a rebase already, so I won't do anything, but you can 'rm -rf /path/to/.git/rebase/folder' and then try again". 5. I don't have any obvious workflow that would force the squash or abort or fix it or ANYTHING. SO, here's how it should work. If I squash or attempt to squash a commit and git isn't going to like it, THEN YOU SHOULD BLOCK THE ACTION AND LET ME KNOW RIGHT AWAY, e.g. give me buttons like "OK, wrap up this squash" or "abort this squash" or "omit this commit from squash". If there is some obscure git reason that some commit is unacceptable, YOU SHOULD INCLUDE SOME MEANINGFUL INFO ABOUT WTF IS GOING ON, AND HOW TO GET AROUND IT, OR WHY IT'S A BAD THING TO DO, etc. more complaints later. I would like this workflow to work easily and smoothly. |