[petsc-dev] how do people manage projects that require two or more PETSc branches
Jed Brown
jed at jedbrown.org
Sat Apr 17 18:37:47 CDT 2021
One option is to work on the throw-away combined branch as above, keep your commits for the two topics distinct, then cherry-pick out into the separate topic branches.
If you are committing in the topics and respinning the throw-away branch, I would recommend rerere, so you don't have to repeat conflict resolution.
https://git-scm.com/docs/git-rerere
On Sat, Apr 17, 2021, at 5:02 PM, Jacob Faibussowitsch wrote:
> I have done this maybe only a handful of times (and not with petsc) but take a look at git worktree https://git-scm.com/docs/git-worktree
>
> The basics of it is:
>
> 1. cd $PETSC_DIR — or wherever the root folder of your repo of choice is
> 2. git worktree add ../myBranchName
>
> Then this recreates the entire src tree of the current branch in a separate directory (namely $PETSC_DIR/../myBranchName). Not sure how useful it is for petsc, given how dependent everything is on $PETSC_DIR but it's occasionally useful. Its as if you had 2 separate clones of petsc, but they both share the same .git folder (I think).
>
> Best regards,
>
> Jacob Faibussowitsch
> (Jacob Fai - booss - oh - vitch)
>
>> On Apr 17, 2021, at 17:24, Barry Smith <bsmith at petsc.dev> wrote:
>>
>>
>> Say I have a project (a code whose source is not in the PETSc repository) that requires code from two PETSc branches (that may or may not yet be MR) but I do not want to make a single PETSc branch (since it would be incoherent). I may possibly be needing to add code to both of the PETSc branches as I develop the project. I also need to do development sometimes on different machines.
>>
>> I can do
>>
>> git checkout branch1
>> git checkout -b combinedbranch
>> git merge branch2
>> configure
>> make
>> use for a while
>>
>> but now I need to fix or add something to branch1 (which, of course, will be an iterative process as I write the code and fix it) and then add something in branch2.
>>
>> Doing the above procedure over and over again is tedious and prone to produce errors, editing in the wrong branch etc.
>>
>> Does anyone have advice on good work flows for this situation?
>>
>> Barry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20210417/d1d1897f/attachment.html>
More information about the petsc-dev
mailing list