Hello Karel,
Am 15.07.23 um 19:22 schrieb Karel Gardas:
On 7/15/23 16:00, o...@c-mauderer.de wrote:
We should avoid rebasing and overwriting the old branch because we
have to preserve a version that can be used with older RTEMS versions.
So for rebasing, we would have to use multiple branches. Instead of
rtems-6-branch, it could be a rtems-<date-of-base-revision> or
something similar.
Thanks for confirmation. Have the same feeling about it.
I think that depends heavily on how the upstream project works. If the
upstream project uses a typical git workflow and is quite active,
merging is most likely the better solution because we don't get big
amounts of branches with that.
But this means we still merge to some rtems specific branch since master
is used to sync with upstream, right?
Yes. That would be my suggested workflow: Track the upstream master or
main branch and merge it into an RTEMS specific one.
On the other hand I know that some semiconductor manufacturers tend to
just dump code into a repo and they don't care whether files move
around or change heavily. They happily mix changes with reformatting
the complete code. In that case you have no chance of a useful
merge-commit. I think in these cases it's most likely better to create
a new branch on every update and rebase the patches.
Anyway, still this is a branch based workflow. How would you do that
workflow with just fixed commit IDs?
I'm asking since so far commit IDs on submodules were always obtain
from master branch which is what we basically fork and does not give
us ability to patch with RTEMS changes...
So I'm curious how would you do that?
I think I have put that in the wrong words. I assumed you mean that
you want to use some feature that always uses the latest commit of a
branch (also I don't know whether git even has that feature).
What I wanted to say is that if I check out a RTEMS version from two
months back, it should check out the revisions of the submodules that
have been used in RTEMS two months back too. It must not use the
latest HEAD of the branch from today. It's just part of having a
version of the code that can be reproduced later.
Right! Now crucial question: is that even supported in git? I'm asking
since so far I've seen only:
- use fixed commit ids, but those are obtained only from master branch
or
- use branch and then this is always branch HEAD
I've not seen anything like "use fixed commit ID from branch XXX". So
question for you as an git expert: are you absolutely sure that this
workflow is supported by git at all? And by this I mean have you tested
that actually? :-)
I know only of the method that git uses a fixed commit ID in a
submodule. It expects that the commit ID is on some branch in the remote
repository. In my experience, it's not relevant whether the commit is on
the branch `main`, `master`, `foo-bar`, `my-cool-new-feature` or any
other branch. And yes: I use that regularly.
Additionally, git support adding an optional "branch" parameter to each
submodule. But as far as I know, that is only used during
git submodule update --remote
which basically tells git to pull the latest version of the branch
instead of a special commit ID. I usually don't use that.
See https://stackoverflow.com/a/18797720 for a better explanation.
Of course the revision from two months back has to be available in the
repo. It doesn't really matter whether it's on master because the code
just worked or whether it's a RTEMS specific branch because adaptions
have been necessary.
You "it doesn't really matter" worries me a little bit. I'm not sure
this functionality is even supported hence my question above if you have
tested it yourself.
Yes, I use that regularly. For an (old) example, take a look at a branch
in the repo that I use to test GSoC work:
https://gitlab.com/c-mauderer/rtems-bbb/-/tree/6
I have a libs/rtems-libbsd submodule there that uses the revision
c9474c0b which is on a cm/20200726_fix branch in my clone of
rtems-libbsd. In the .gitmodules the branch is still set to "master".
Despite that, git can find thre right commit ID.
Best regards
Christian
Thanks!
Karel
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel