[ANNOUNCE] repo 1.6.7

73 views
Skip to first unread message

Shawn Pearce

unread,
Apr 21, 2009, 11:38:27 AM4/21/09
to repo-discuss
repo 1.6.7 is now available.

A "repo selfupdate" or "repo sync" will upgrade an existing client.


==Improvements==

* Performance

A no-op "repo sync" of Android over SSH went from 1m8s to 17s (Linux); 59s to 10s (Mac OS X).  This was against a Gerrit SSHD.

Other commands like "repo branches", "repo abandon", "repo start" and "repo checkout" have also improved, especially in projects with no local modifications.


* Documentation

Some documentation has been updated/improved in the "repo help foo" pages.


* New -p flag on "repo forall"

The -p flag outputs the project name before command output, and silences commands which produced no ouptut.  This is really quite useful when performing data mining over all projects, e.g. "show me everything done by bob in cupcake" is now more easily written as "repo forall -pc git log --author=bob korg/cupcake".


* New review.URL.autoupload configuration option

See "repo help upload" post update.  You can now disable the "Upload ... (y/n)?" prompt if you wish.


==Bug Fixes==

* Unexpected merge conflicts during repo sync

I've seen merge conflicts show up sometimes with repo sync when they shouldn't.  This appeared to be caused by repo's abuse of "git rebase --interactive", in a non-interactive mode, and some logic changes in how rebase interactive behaves in more recent versions of git.  The rebase logic now uses standard rebase, which is more verbose as it is operating, but less finicky.


==Change Log==
$ git log --reverse --pretty=format:' * %s' v1.6.6..v1.6.7
 * Remove confusing message from repo sync output
 * Supporrt mixed case subsection names in Git config files
 * Allow review.URL.autoupload to skip prompting during `repo upload`
 * Only compute commits in repo upload if we need to show a prompt
 * Implement 'git symbolic-ref HEAD' in Python
 * Implement git ref reading purely in Python
 * Improve repo sync performance by avoid git forks
 * Pickle parsed git config files
 * Avoid unnecessary git symbolic-ref calls during repo sync
 * Enable tracing of ref scans and config unpickling
 * Fix `repo --trace` to show ref and config loads
 * Disable the progress meter when trace is enabled
 * Only display a progress meter once we spend 0.5 seconds on a task
 * Avoid git fork on the common case of repo not changing
 * Only fetch repo once-per-day under normal 'repo sync' usage
 * Remove unused methods from project.ReviewableBranch
 * Improve the help text for 'repo upload'
 * Display the URL we will upload changes to for review
 * Improve the help text for 'repo start'
 * Only display project path in 'repo stage -i'
 * Correct note about local_manifest.xml capabilities
 * Clarify options that control the repo executable version
 * Improve the help text for 'repo init'
 * Show options help after the summary for a command
 * Clarify the option section header in 'repo help grep'
 * Add -p to `repo forall` to improve output formatting
 * Speed up 'repo start' by removing some forks
 * Make usage of open safer by setting binary mode and closing fds
 * Add progress meter to 'repo start'
 * Improve checkout performance for the common unmodified case
 * Modify 'repo abandon' to be more like 'repo checkout' and 'repo start'
 * Print '(no branches)' if the output of `repo branches` is empty
 * Highlight projects which still have sync failures during 'repo status'
 * Make 'repo status' show the branch you are currently on
 * Automatically use SSH control master support during sync
 * Fix launching of editor under 'repo upload --replace'
 * Work around 'ControlPath too long' on Mac OS X
 * Support a level 2 heading in help description text
 * Document the SSH ControlMaster behavior of repo sync
 * Fix 'repo sync' rebase logic on a published branch

Bill Zimmerly

unread,
May 13, 2009, 3:21:58 AM5/13/09
to Repo and Gerrit Discussion
Shawn, I'm using Python 2.4.6 and this is what I get when running
"repo sync". Please help. (Thank you!)
- Bill

bzimmerly@HockeyPuck:~/mydroid$ repo sync
/home/bzimmerly/mydroid/.repo/repo/codereview/proto_client.py:19:
DeprecationWarning: the md5 module is deprecated; use hashlib instead
import md5
Traceback (most recent call last):
File "/home/bzimmerly/mydroid/.repo/repo/main.py", line 34, in
<module>
from manifest import Manifest
File "/home/bzimmerly/mydroid/.repo/repo/manifest.py", line 21, in
<module>
from project import Project, MetaProject, R_HEADS
File "/home/bzimmerly/mydroid/.repo/repo/project.py", line 27, in
<module>
from gerrit_upload import UploadBundle
File "/home/bzimmerly/mydroid/.repo/repo/gerrit_upload.py", line 21,
in <module>
from codereview.proto_client import HttpRpc, Proxy
File "/home/bzimmerly/mydroid/.repo/repo/codereview/
proto_client.py", line 31, in <module>
from need_retry_pb2 import RetryRequestLaterResponse;
File "/home/bzimmerly/mydroid/.repo/repo/codereview/
need_retry_pb2.py", line 9, in <module>
from froofle.protobuf import descriptor_pb2
File "/home/bzimmerly/mydroid/.repo/repo/froofle/protobuf/
descriptor_pb2.py", line 879, in <module>
class FileDescriptorSet(message.Message):
File "/home/bzimmerly/mydroid/.repo/repo/froofle/protobuf/
reflection.py", line 155, in __init__
superclass.__init__(cls, name, bases, dictionary)
TypeError: Error when calling the metaclass bases
type.__init__() takes 1 or 3 arguments
bzimmerly@HockeyPuck:~/mydroid$

Shawn Pearce

unread,
May 13, 2009, 10:07:57 AM5/13/09
to repo-d...@googlegroups.com
On Wed, May 13, 2009 at 00:21, Bill Zimmerly <billzi...@gmail.com> wrote:

Shawn, I'm using Python 2.4.6 and this is what I get when running
"repo sync". Please help. (Thank you!)
- Bill

bzimmerly@HockeyPuck:~/mydroid$ repo sync
/home/bzimmerly/mydroid/.repo/repo/codereview/proto_client.py:19:
DeprecationWarning: the md5 module is deprecated; use hashlib instead
 import md5

That is a very, very old version of repo.

Manually upgrade it to a current version:

  (cd .repo/repo; git pull origin stable)
 

Reply all
Reply to author
Forward
0 new messages