I understand that Magit will report a commit as "Unpushed" immediately after pushing it because it has not been pushed to the Upstream branch (master in this case). That makes me wonder what the rationale is for labeling the commit as "Unpushed" in the face of the common workflow convention of pushing a commit to a remote branch, creating a Pull Request on that remote branch, applying review comments, and then merging to the upstream branch. I would think that what Magit currently labels "Unpushed" would be better labeled "Unmerged" and that "Unpushed" would mean that the current branch has not been pushed at all and the label gets changed to "Unmerged" after doing a successful push to any remote branch. In this model, one could see (different) commits under an "Unpushed" section and under an "Unmerged" section. I might have a misunderstanding for the Magit model and if so, I'd like to get a more accurate model. I ask the question as a pre-cursor to filing an issue to make sure it really is a product issue and not just a grokking issue.
-
IIUC this is related to emacs.stackexchange.com/questions/14543/…– YoungFrogCommented Oct 25, 2015 at 8:49
-
Related yes, but a different question. I want to know if there is a better way to deal with the issue. The related question was trying to understand the behavior.– pajato0Commented Oct 25, 2015 at 12:44
-
"in the face of the common workflow convention of pushing a commit to a remote branch, creating a Pull Request on that remote branch..." - I think github.com/magit/magit/issues/1485 will deal with this, but it hasn't been implemented yet.– npostavsCommented Oct 25, 2015 at 15:36
1 Answer
"Unpushed commits" is short for "Commits not yet pushed to / not yet merged into the branch where they should eventually end up" or something like that. I.e. I mostly agree with your analysis, but don't think simply switching to "Unmerged commits" is the solution. That's also ambiguous, since it would make just as much sense to alternatively rename "Unpulled commits" to "Unmerged commits".
Edit: Starting with v2.4
there may be up to four log sections in the status buffer. Two for the push-remote and two for the upstream branch. E.g.:
Unpulled from origin/master
Unpulled from my-fork/feature
Unpushed to origin/master
Unpushed to my-fork/feature
-
Fair enough, my issue was a grokking issue. The issue linked blog post was fascinating, albeit a sad reminder how the crazy world of project politics is ever present. :-( I look forward to your changes.– pajato0Commented Oct 25, 2015 at 19:14