[llvm-dev] Committing with git

Nemanja Ivanovic via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 28 16:18:38 PDT 2019


Now that we have switched to git and I had to leave behind my wonderfully
simple svn workflow I have noticed something curious when committing.

My typical workflow once my patch is approved on Phabricator has always
been:
- Update my source tree to latest
- Apply the approved patch
- Rebuild
- Retest
- If all is well, commit

Having to update again after rebuilding/retesting was extremely rare since
SVN only prevented the commit if I am modifying the same file(s) that have
been modified upstream since my update.

So I tried replicating that workflow with git, but apparently that isn't
really an option. Apparently git won't let me push if there have been any
commits upstream at all between my last pull and my push. This means that I
can never push from a fully tested state since it is almost impossible to
find a window of 20-30 minutes without any commits (which is how long a
rebuild/retest takes for me).

One might argue that this is no worse than what I had with SVN since I
would commit on top of changes that already happened upstream. But this is
not always the case. Namely, if an upstream commit modifies the same file,
causing a semantic conflict, I would not end up committing with the old svn
workflow whereas I would end up committing with the new git workflow.

I am not sure if this is something that can be solved (nor if it is
something that needs to be solved) but I thought I would just bring it up.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191028/d2cf4254/attachment.html>


More information about the llvm-dev mailing list