[petsc-dev] how do people manage projects that require two or more PETSc branches
Satish Balay
balay at mcs.anl.gov
Sun Apr 18 11:56:00 CDT 2021
On Sat, 17 Apr 2021, Barry Smith 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).
The primary issue is managing the dependencies between changes (commits, features). And when making a new change - (for each new change) evaluate and update, reorder the prior commits as needed.
Attempting to avoid this usually results in a bad commit history - and I've been trying to avoid in petsc history. [currently a single merge commit - which is not cohesive - or easily debuggable is what I'm falling back on]
Any work-flow below won't be able to mask the above problem easily.
If the above problem is managed (requires constant rebasing/collapsing/rerordering/moving-commits etc] - then the workflow below is just book-keeping.. [one can aswell use a single branch and split into 2 branches when the features are complete]
Satish
> 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
>
More information about the petsc-dev
mailing list