git help: fortran_unsigned branch
Dimitar Dimitrov
dimitar@dinux.eu
Fri Aug 9 19:17:23 GMT 2024
On Fri, Aug 09, 2024 at 08:43:38PM +0200, Thomas Koenig wrote:
> Hi Dimitar,
>
> > On Fri, Aug 09, 2024 at 08:00:42PM +0200, Thomas Koenig via Gcc wrote:
> > > Hi,
> > >
> > > I have managed to bring the fortran-unsigned branch into a state where
> > > it can no longer be rebased. When I do a
> > >
> > > $ git rebase master
> > It's unknown what is the state of your local master branch. So I would
> > advise to rebase against master branch on the server:
> >
> > $ git fetch origin
> > $ git rebase origin/master
>
> OK, I did that.
>
> > With the above I get the following result, which looks reasonably ok to
> > me:
> >
> > $ git log --oneline --decorate
> > 7bc60bc184f (HEAD) Add merge_bits.
> > ae4b29f34c9 Min, MAX and ishft(c).
> > e7a3c1f7841 Add test case for B, Z and O descriptors.
> > 61b3f21a44b Add some rudimentary documentation.
> > 4589ae45088 Implement dshift[lr], ibclr, ibset and ibits.
> > d1cf578cb2a Add bit_size, btest and bgt plus friends.
> > b285c13323b Bit functions, HUGE and DIGITS.
> > c39c316ae8b Added BOZ support to UINT.
> > 95927079ebc Added UINT intrinsic.
> > 70a309048fe Iplement conversions from unsigned to different data types.
> > c1e596f32f8 Add decimal formatted I/O for unsigneds.
> > 65c571ffe65 A few fixes, add unsigned truncation warning.
> > b84ec7f0242 Implement decimal list-directed I/O.
> > f63906c5ff0 Add compile-time version of selected_unsigned_kind.
> > c8e2ea0c39d Got some basic arithmetic working, test case now run-time.
> > dd626ce9863 Very first program compiles.
> > 1f93f691ff2 Initial version - add do-nothing -funsigned option and BT_UNSIGNED.
> > d0bc1cbf6a8 (origin/trunk, origin/master, origin/HEAD) btf: Protect BTF_KIND_INFO against invalid kind
>
> I get the same.
>
> >
> > >
> > > I get
> > > ...
> > >
> > > warning: skipped previously applied commit a6399bb27b3
> > > hint: use --reapply-cherry-picks to include skipped commits
> > > hint: Disable this message with "git config advice.skippedCherryPicks false"
> >
> > Your origin/devel/fortran_unsigned has manually cherry-picked patches,
> > which meanwhile got merged in "origin/master". I suspect those
> > cherry-picked patches got sneaked in when a stale base was used for a
> > git rebase (i.e. your local master branch).
>
> That actually sounds like a reasonable explanation of what could have
> happened. Of course, it would have been nice to have known that
> beforehand, or maybe even a warning from git...
>
> > Warnings seem benign to me, but I would use the "gitk" tool to check the
> > rebased branch. Just in case.
>
> I've looked at it a bit and seen nothing untoward.
>
> >
> > > Successfully rebased and updated refs/heads/fortran_unsigned.
> > >
> > > and
> > >
> > > $ git status
> > > On branch fortran_unsigned
> > > Your branch and 'origin/devel/fortran_unsigned' have diverged,
> > > and have 688 and 198 different commits each, respectively.
> > > (use "git pull" to merge the remote branch into yours)
> > >
> > > nothing to commit, working tree clean
> > >
> > > and when I do "git pull" I get a lot of conflicts, basically having
> > > to redo each commit by hand, as a conflict.
> >
> > If your local branch is tracking origin/devel/fortran_unsigned, then you
> > are attempting to merge pre-rebase history with post-rebase history.
> > In such case conflicts are expected. Don't pull the remote devel
> > branch.
>
> Hmm... but I already did. And, following other people's advice,
> have reset the branch to upstream already (which may have been
> another mistake).
>
> So, anything I can do about this, or have I messed up the
> branch beyond repair?
I assume you reset your local branch? The branch on the server does not
seem to be affected. I suggest to rebase the remote branch using
another local branch. Example:
# Just in case, see which is your old local branch.
$ git branch
# Create a new local tracking branch
$ git checkout -b fortran_unsigned-20240809 origin/devel/fortran_unsigned
$ git rebase origin/master
$ gitk -n1000
Once you have verified that local history looks good, you can upload it
to the server. Notice that you override the history, which is a natural
consequence of the rebase.
$ git push --force origin HEAD:refs/heads/devel/fortran_unsigned
Regards,
Dimitar
>
>
> > To visualise the histories of your local and the remote branch:
> > $ gitk -n10000 HEAD origin/devel/fortran_unsigned
>
> Looks like a nice tool.
>
> Best regards
>
> Thomas
More information about the Gcc
mailing list