[petsc-dev] how do people manage projects that require two or more PETSc branches

Jacob Faibussowitsch jacob.fai at gmail.com
Sat Apr 17 18:02:06 CDT 2021


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 <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/d062522d/attachment.html>


More information about the petsc-dev mailing list