This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: git-svn error due to out-of-sync changes?


On 05/19/2017 03:46 PM, Jason Merrill wrote:
On Thu, May 18, 2017 at 3:42 PM, Martin Sebor <msebor@gmail.com> wrote:
On 05/18/2017 12:55 PM, Markus Trippelsdorf wrote:
On 2017.05.18 at 12:41 -0600, Martin Sebor wrote:
On 05/18/2017 11:59 AM, Jeff Law wrote:
On 05/18/2017 11:41 AM, Martin Sebor wrote:

I just tried to push a change and got the error below.  git
pull says my tree is up to date.  I wonder if it's caused by
my commit conflicting with another commit (in this case
r248244) that git-svn doesn't see because it lags behind SVN.
I brushed this (and other strange errors) off before, not
bothering to try to understand it but it's happened enough
times that I'd like to bring it up.  I expect some (maybe
even most) of these issues would not exist if we were using
Git directly rather than the git-svn wrapper. Has any more
progress been made on the Git integration project?  Is there
something I/we can do to help get it done?

That just means something changed upstream betwen your last git svn
rebase and your local commit.

Just "git svn rebase", resolve conflicts (the ChangeLogs are the most
common source of conflicts)  and you should be good to go.

The main issue is that there tend to be errors that wouldn't
happen without the extra layer between Git and SVN.  The two
are out of sync by minutes (I don't know exactly how many but
it seems like at least 10), so clearing these things up takes
time.  Some (I'd say most) of the errors I've seen out of
Git-svn are also not completely intuitive so it's not always
clear what or where the problem is.

So I'd like to see if there's something that can be done to
move the migration forward.

The same issue also happen with git when several people push at the same
time.

Yes, it can.  The major difference, I suspect, is due to Git-svn
asynchronous, delayed updates.  My guess is that Git-svn pull
requests are based on updates from SVN that happen only every
few minutes, but pushes happen in real time.  So when we pull,
we're likely to get outdated sources (changes committed since
the last Git update are not included).  But when we push, we're
likely to run into (at a minimum) ChangeLog conflicts with those
already committed changes that Git-svn hasn't been updated with.
This is just a wild guess based on the errors I've seen and
their increased incidence since 7 has been released.

Yes, the git mirror can lag the SVN repo by a few minutes, that's why
you need to 'git svn rebase' to pull directly from SVN before a
commit.

Ah, so that's so the magic spell!  Thanks for explaining it.  I've
been using 'git pull' and it didn't occur to me that I should be
using 'git svn rebase' instead to get the most up-to-date sources.
It would be worth to highlight this bit more prominently on the
Wiki.

Martin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]