>> one need not be forced to use github/gitlab workflows of pull/merge
>> requests. One can instead work with named branches.
> 
> Well, for FriCAS traditional branches are of limited use.  My
> main developement flow is interactive, compiling only edited
> files and loading them, while if possible reusing test data
> stored in the executing image.  In fact, for new code I prefer
> interpreter where I can work out expressions on command line,
> then wrap them in a function, gradualy function by function
> growing the code.  Neither git nor svn help with this.

Sorry to say, but you are wrong at least if you use git.

Forget about the idea that "a commit is something that lives forever in
the repository". You should rather consider git to be a database that
you can freely modify.

The "master" branch is usually used for "linear" development as you know
it from svn trunk.

When you do development locally, you say

   git checkout -b NEW-BRANCH-NAME

and all commit you ever do on this branch is never seen by anyone else
unless you push it somewhere. So you can commit after each function you
add to the code. That are, let's say 20 commits. When everything works
for you, you can now decide what to do with all thoses commits.

1) Merge your commit into the master branch.
   git checkout master
   git merge NEW-BRANCH-NAME
2) Rebase your changes on top of the new master branch in case
   the master branch has meanwhile progressed by commits from other
   people.
   git rebase master
   # now "fast-forward" the master branch
   git checkout master
   git merge --ff-only NEW-BRANCH-NAME
3) You don't want other people to see you intermediate commits, i.e.,
   you want to put just one commit on top of master. So you squash all
   your 20 commits into just one.

   git rebase -i HEAD~21

   This brings you into an interaction with git where you can say what
   to do with the commits. Except for the first, you mark them as "fix".

   After that you do (1) or (2) from above.

Later you say
git branch -D NEW-BRANCH-NAME
and your development branch is gone as if it has never existed.

https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging

Why do you think that doesn't help? Because you do not want to use git
locally for your own safety? It might happen that you develop two
features at the same time. Working on different branches allows you to
keep the feature commits separated without the need to open differnt
working directories.

>> The projects that stick to cvs or svn suffer, as cvs and svn are legacy
>> tools, and forcing it on contributors is counterproductive.
> 
> Well, I used cvs and svn was a definite progress compared to cvs.
> Not so with git, at least for projects like FriCAS.  I understand
> that there is familiarity factor, different tool feels clumsy
> because it is different, regardless of objective features.  OTOH
> which version control software is in use should not matter much
> for contributors, main work is elsewere.

Don't you think that some contributors feel like "oh they are still
using git... uff that's not modern. Let's look somewhere else...".

Of course, main work is somewhere else, but if the first hurdle is
unnecessarily high, that's not good. I'm sure you are clever enough to
learn git than it is for the younger generation to go back and learn svn.

Ralf

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/9e07d6ba-3e32-2fcd-49d5-e9da0db5bbab%40hemmecke.org.

Reply via email to