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 <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 <[email protected]> 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 >
