Go to file
Mike Frysinger 70d861fa29 sync: improve output with intermingled progress bars and status
When displaying progress bars, we use \r to reset the cursor to the
start of the line before showing the new update.  This assumes the
new line will fully erase whatever was displayed there previously.
The "done" codepath tries to handle this by including a few extra
spaces at the end of the message to "white out" what was there.

Lets replace that hack with the standard ECMA escape sequence that
clears the current line completely.  This is the CSI "erase in line"
sequence that the terminal will use to delete all content.  The \r
is still needed to move the cursor to the start of the line.  Using
this sequence should be OK since we're already assuming the terminal
is ECMA compliant with our use of coloring sequences.  We also put
the \r after the CSI sequence on the off chance the terminal can't
process it and displays a few bytes of garbage.

The other improvement is to the syncbuffer API.  When it dumps its
status information, it almost always comes after a progress bar
update which leads to confusing comingled output.  Something like:
  Fetching projects: 100% (2/2) error: src/platform2/: branch ...
Since the progress bar is "throw away", have the syncbuffer reset
the current output to the start of the line before showing whatever
messages it has queued.

Bug: https://crbug.com/gerrit/11293
Change-Id: I6544d073fe993d98ee7e91fca5e501ba5fecfe4c
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/236615
Reviewed-by: David Pursehouse <dpursehouse@collab.net>
Tested-by: Mike Frysinger <vapier@google.com>
2019-09-13 02:58:07 +00:00
docs manifest-format: document implicit directory creation w/<copyfile> & <linkfile> 2019-08-02 04:21:40 +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: create dedicated smart sync func 2019-09-11 23:24:11 +00:00
tests tests: add docstrings & print_function (for Python 3) 2019-08-01 03:03:48 +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 split out cli validation from execution 2019-08-28 03:54:11 +00:00
COPYING Initial Contribution 2008-10-21 07:00:00 -07:00
editor.py set default file encoding to utf-8 2019-06-13 14:30:52 +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 rename local trace module 2019-08-27 07:08:52 +00:00
git_config.py rename local trace module 2019-08-27 07:08:52 +00:00
git_refs.py rename local trace module 2019-08-27 07:08:52 +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 split out cli validation from execution 2019-08-28 03:54:11 +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 set default file encoding to utf-8 2019-06-13 14:30:52 +00:00
progress.py sync: improve output with intermingled progress bars and status 2019-09-13 02:58:07 +00:00
project.py sync: improve output with intermingled progress bars and status 2019-09-13 02:58:07 +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 repo: decode/encode all the subprocess streams 2019-09-12 04:16:51 +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.