Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Git Workflow Question: Getting Ready for a Pull Request
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Portage & Programming
View previous topic :: View next topic  
Author Message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10696
Location: Somewhere over Atlanta, Georgia

PostPosted: Thu Jan 16, 2025 3:24 pm    Post subject: Git Workflow Question: Getting Ready for a Pull Request Reply with quote

I think this is a fairly normal workflow. I've done the following:
  1. Check out "master".
  2. Create a feature branch. Call it "feature".
  3. Work on the feature branch, committing early an often with various temporary changes, debug chatter, and generally being very verbose about my reasoning, false starts, and so forth.
  4. If other work is being done on master (not by me), merge and rebase as appropriate to keep my feature branch reasonably up to date with master.
Now I'm ready to submit my feature to upstream, but all of this commit chatter is meaningless to anyone but me. I also want to preserve the debug code, that I won't be submitting upstream, for my own benefit for future development on the feature branch. So what I want to do is:
  1. Create a "release-candidate" branch from the current HEAD of the "feature" branch.
  2. Edit out all of the extraneous debug chatter in the code and commit the clean code on the new branch with appropriate explanatory comments.
  3. Do something so that the "release-candidate" branch is attached to the HEAD of master so that only the commits I want to be part of the pull request are in that branch.
It's that last step that I don't know how to do. Some pointers would be appreciated.

- John
_________________
I can confirm that I have received between 0 and 499 National Security Letters.
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2613

PostPosted: Thu Jan 16, 2025 4:38 pm    Post subject: Re: Git Workflow Question: Getting Ready for a Pull Request Reply with quote

John R. Graham wrote:


  1. Do something so that the "release-candidate" branch is attached to the HEAD of master so that only the commits I want to be part of the pull request are in that branch.
It's that last step that I don't know how to do. Some pointers would be appreciated.

- John


Create a patch and apply it to a new branch of master. Create the pull request from it.

Another option is to create a commit from a list of commits which would look to the outside world as a single commit and the verbosity of your previous commits will be hidden. I recently read about it wrt another issue but I don't remember how this feature was called.

EDIT: it's squashing. https://www.git-tower.com/learn/git/faq/git-squash

Best Regards,
Georgi
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1402
Location: Richmond Hill, Canada

PostPosted: Thu Jan 16, 2025 5:12 pm    Post subject: Re: Git Workflow Question: Getting Ready for a Pull Request Reply with quote

logrusx wrote:
Create a patch and apply it to a new branch of master. Create the pull request from it.


Isn't "pull request" is concept of github/gitlab/...?

I think git workflow does not have concept "pull request".
Back to top
View user's profile Send private message
logrusx
Advocate
Advocate


Joined: 22 Feb 2018
Posts: 2613

PostPosted: Thu Jan 16, 2025 5:40 pm    Post subject: Re: Git Workflow Question: Getting Ready for a Pull Request Reply with quote

pingtoo wrote:
logrusx wrote:
Create a patch and apply it to a new branch of master. Create the pull request from it.


Isn't "pull request" is concept of github/gitlab/...?

I think git workflow does not have concept "pull request".


It isn't, but it isn't git concept either. However it's also not relevant here as OP wants to use GitHub. To my knowledge, this is the way to incorporate changes in the main tree without you being a developer with rights to commit into Gentoo's git.

Best Regards,
Georgi
Back to top
View user's profile Send private message
pingtoo
Veteran
Veteran


Joined: 10 Sep 2021
Posts: 1402
Location: Richmond Hill, Canada

PostPosted: Thu Jan 16, 2025 6:12 pm    Post subject: Re: Git Workflow Question: Getting Ready for a Pull Request Reply with quote

logrusx wrote:
pingtoo wrote:
logrusx wrote:
Create a patch and apply it to a new branch of master. Create the pull request from it.


Isn't "pull request" is concept of github/gitlab/...?

I think git workflow does not have concept "pull request".


It isn't, but it isn't git concept either. However it's also not relevant here as OP wants to use GitHub. To my knowledge, this is the way to incorporate changes in the main tree without you being a developer with rights to commit into Gentoo's git.

Best Regards,
Georgi
Thank you very much.

I just found that usually when I search git workflow there is no mention "pull request". whereas when search for github workflow there is "pull request" however there is no "merge" concept.

I understand pull request underlying is still merge, just at the beginning when I learning git and subsequently learning github it is confusing when I try find how to merge my local repository into my main repository there seems no mention on how to "merge" on github.
Back to top
View user's profile Send private message
keekkenen
n00b
n00b


Joined: 05 Oct 2024
Posts: 29

PostPosted: Thu Jan 16, 2025 6:12 pm    Post subject: Re: Git Workflow Question: Getting Ready for a Pull Request Reply with quote

John R. Graham wrote:
If other work is being done on master (not by me), merge and rebase as appropriate to keep my feature branch reasonably up to date with master.

I think you need to make a merge only and maybe resolve the merge conflict if you and other one make changes in the same file.

John R. Graham wrote:
I also want to preserve the debug code, that I won't be submitting upstream, for my own benefit for future development on the feature branch.

You need to make commits only releasing code (I mean debugged code must be stayed not committed).
And then you can make a stash, its operation to save you uncommitted (code for debug) code and delete it from the code of your feature (course, of all your code must be added to git index, I mean `git add {some files}`). After that, you need to push your feature code to the remote git repo, and you can make a pull (or merge) request in your platform (GitHub, GitLab, Bitbucket, etc). Also, you can make a new branch (aka release-candidate) from your feature branch, and then push it to remote repo and then make PR from its branch, but it's no sense (I mean it's excess action), but you can do this, it depends on your workflow process.

You can make git unstash operation in your feature branch and continue to debugging it.
_________________
7950x3d / x670e MSI Tomagawk / Sapphire RX 7800XT 16Gb / G.Skill 64Gb 5600 / A-Data Legend 960 2Tb (x2), A-Data SX8200PNP 256Gb
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10696
Location: Somewhere over Atlanta, Georgia

PostPosted: Thu Jan 16, 2025 7:10 pm    Post subject: Reply with quote

Actually, I went for a mountain bike ride and, somewhere in the climb, I realized the answer. Here's the full recipe:
  1. Check out "master" and create a "release-candidate" branch from the current HEAD of "master".
  2. Create a patch from the diff of "master" and "feature".
  3. Check out "release-candidate" and then apply the patch to the working directory.
  4. Edit out all of the extraneous debug chatter in the code and commit the clean code on the "release-candidate" branch with appropriate explanatory comments.
  5. QED
I was looking for a git command to do that directly, but on second thought, I don't need it.

- John
_________________
I can confirm that I have received between 0 and 499 National Security Letters.


Last edited by John R. Graham on Thu Jan 16, 2025 7:11 pm; edited 1 time in total
Back to top
View user's profile Send private message
Hu
Administrator
Administrator


Joined: 06 Mar 2007
Posts: 23013

PostPosted: Thu Jan 16, 2025 7:10 pm    Post subject: Reply with quote

Some users may want to locally commit their debug code, because constantly stashing and unstashing it around real code becomes a burden.

Maybe you are looking for git branch --set-upstream-to=branch?

I see a midair collision. There is a simple git flow for this.
  • git checkout -b feature-clean origin/master
  • git checkout -p feature-dirty -- ./
  • Work through the prompts from git checkout -p to add hunks from feature-dirty into the working copy. Reject any that are debug-only.
  • git commit


Last edited by Hu on Thu Jan 16, 2025 7:17 pm; edited 1 time in total
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10696
Location: Somewhere over Atlanta, Georgia

PostPosted: Thu Jan 16, 2025 7:15 pm    Post subject: Reply with quote

Ah. Thank you! I'll work through that recipe.

- John
_________________
I can confirm that I have received between 0 and 499 National Security Letters.
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10696
Location: Somewhere over Atlanta, Georgia

PostPosted: Thu Jan 16, 2025 7:24 pm    Post subject: Re: Git Workflow Question: Getting Ready for a Pull Request Reply with quote

logrusx wrote:
Create a patch and apply it to a new branch of master. Create the pull request from it.
I see you beat me to it. :) Thanks!

logrusx wrote:
EDIT: it's squashing. https://www.git-tower.com/learn/git/faq/git-squash
I explicitly don't want to squash because I want to leave all of the the feature branch's noisy commits intact. But, thanks again.

- John
_________________
I can confirm that I have received between 0 and 499 National Security Letters.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Portage & Programming All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum