Go to file
Mike Frysinger 2ba5a1e963 sync: try to fast forward merge branches before checking published state
If the local branch changed state since its last upload, the data
cached in .git/config related to the last uploaded CL might not be
that relevant.  If we're able to fast forward merge to the latest
tree state, then let's do that.  This would be akin to checking
out a detached head before syncing where we already switch state.

If we aren't able to fast forward merge, then it's not a big deal
as we'll continue on to the existing branch checking logic.

This would be easy to reproduce by doing something like:
  $ repo start foo .
  $ git revert HEAD
  $ repo upload --cbr .
  $ git reset --hard HEAD^
  <CL is merged>
  $ repo sync .
  <we can fast forward>

Change-Id: I7d62f3d1ba5314a349d85b4dbb0ec8352eca18bb
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/238552
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Michael Mortensen <mmortensen@google.com>
Reviewed-by: Mike Frysinger <vapier@google.com>
2019-11-13 20:29:33 +00:00
docs python-support: adjust major versions 2019-10-11 06:56:03 +00:00
hooks hooks/pre-auto-gc-battery: allow gc to run on non-laptops 2018-07-11 13:45:58 -07:00
subcmds sync: merge project updates with status bar 2019-11-12 23:33:51 +00:00
tests git_command: set GIT_HTTP_USER_AGENT on all requests 2019-10-01 05:47:17 +00:00
.flake8 Replace pylint with pyflakes/flake8 2016-09-14 09:49:02 +02:00
.gitattributes Adds additional crlf clobber avoidance. 2016-06-22 08:36:45 +00:00
.gitignore Add repoc to the .gitignore file 2013-03-08 01:18:08 +00:00
.mailmap Update .mailmap 2017-05-26 21:44:57 +09:00
.project Set correct name in PyDev and Eclipse project config 2013-04-19 09:35:43 +09:00
.pydevproject Leverage the next keyword from python 2.7 2018-12-19 11:06:35 -08:00
color.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
command.py command: filter projects by active manifest groups 2019-10-08 20:15:08 +00:00
COPYING Initial Contribution 2008-10-21 07:00:00 -07:00
editor.py use open context managers in more places 2019-11-12 03:44:39 +00:00
error.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
event_log.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
git_command.py git_command: set GIT_HTTP_USER_AGENT on all requests 2019-10-01 05:47:17 +00:00
git_config.py use open context managers in more places 2019-11-12 03:44:39 +00:00
git_refs.py use open context managers in more places 2019-11-12 03:44:39 +00:00
git_ssh add license header to a few more files 2019-06-13 13:23:19 -04:00
gitc_utils.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
main.py Only import imp on py2 2019-10-05 04:41:40 +00:00
manifest_xml.py Add support for partial clone. 2019-07-16 00:23:16 +00:00
pager.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
platform_utils_win32.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
platform_utils.py sync: make .git init more robust 2019-11-12 03:44:33 +00:00
progress.py sync: merge project updates with status bar 2019-11-12 23:33:51 +00:00
project.py sync: try to fast forward merge branches before checking published state 2019-11-13 20:29:33 +00:00
pyversion.py set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
README.md README: link in new bug tracker 2018-12-20 02:11:46 -05:00
repo use open context managers in more places 2019-11-12 03:44:39 +00:00
repo_trace.py rename local trace module 2019-08-27 07:08:52 +00:00
run_tests run_tests: add a helper for invoking unittests 2019-07-11 04:34:08 +00:00
SUBMITTING_PATCHES.md run_tests: add a helper for invoking unittests 2019-07-11 04:34:08 +00:00
wrapper.py wrapper: Fix indentation level 2019-07-31 08:38:19 +00:00

repo

Repo is a tool built on top of Git. Repo helps manage many Git repositories, does the uploads to revision control systems, and automates parts of the development workflow. Repo is not meant to replace Git, only to make it easier to work with Git. The repo command is an executable Python script that you can put anywhere in your path.