help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Official Git mirror?


From: Tim X
Subject: Re: Official Git mirror?
Date: Mon, 21 Feb 2011 19:52:38 +1100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Óscar Fuentes <address@hidden> writes:

> Eli Zaretskii <address@hidden> writes:
>
>>> From: "Oleksandr Gavenko (aka gavenkoa)" <address@hidden>
>>> Date: Sun, 20 Feb 2011 23:11:16 +0200
>>> 
>>> As Bzr have network inefficient protocol I search for Git mirror.
>>
>> Bzr is no less efficient than Git.  If the initial checkout is slow,
>> try one of these two, for the first "bzr branch" command only:
>>
>>   bzr branch nosmart+bzr://bzr.savannah.gnu.org/emacs/trunk
>>
>>   bzr branch lp:emacs
>
> address@hidden:~/dev/ff$ time bzr branch lp:emacs
> Branched 103368 revision(s).
> real    17m41.424s
> user    7m56.250s
> sys     0m8.240s
>
> address@hidden:~/dev/ff/git-emacs$ time git clone git://repo.or.cz/emacs.git 
> git-emacs
> Initialized empty Git repository in 
> /home/oscar/dev/ff/git-emacs/git-emacs/.git/
> remote: Counting objects: 597983, done.
> remote: Compressing objects: 100% (122520/122520), done.
> remote: Total 597983 (delta 474994), reused 597778 (delta 474826)
> Receiving objects: 100% (597983/597983), 521.43 MiB | 1.00 MiB/s, done.
> Resolving deltas: 100% (474994/474994), done.
> real    11m42.616s
> user    2m36.630s
> sys     0m14.820s
>
>
> Please note that git downloads all 51 branches that exists or existed on
> Savannah while bzr gets just `trunk'.
>
> Git keeps the pipe downloading data at full speed all the time, while
> bzr fluctuates a lot, including several long pauses, possibly because
> the server is doing some CPU-intensive work for preparing the data.
>
> Maybe the differences are not big enough to notice by most people that
> update their Emacs mirrors from time to time, but it is not accurate to
> say that bzr's network protocol is no less efficient than git.
>
>

Such comparisons are meaingless. There are two many variables not
accounted for, such as network, server load, client/server versions and
even differences in repositories. 

However, what really matters is the updates rather than a fresh full
branching/cloning as you only do the long initial copy once. 

Personally, I prefer git, but use bzr just as much as a number of
projects I work on use bzr. I've found the initial checkouts to be
fairly close and later updates to also be about the same. If you setup
things according to the instructions on the emacs wiki for bzr, creating
a new branch copy is extremely fast. For example

address@hidden:~/bzr/emacs$ time bzr branch 
http://bzr.savannah.gnu.org/r/emacs/trunk/ new
Branched 103370 revision(s).                                                    
    

real    0m44.743s
user    0m3.800s
sys     0m0.400s

which created a fresh new branch to work on. My preference for git is
that it just fits how I think and my preferred workflow over bzr.
However, functionally, I find them pretty much equivalent.

The real point to note, as mentioned by Eli, is that the git repositories
are frequently hours behind bzr. As we are talking about development
sources, this can be important. There are a number of times I've updated
only to find that the current snapshot either fails to build or has a
bug. However, this is usually fixed very quickly. In fact, this happened
to me last week. I reported the problem on the dev list and it was fixed
within about an hour. 

With the git copy, you may have to wait a day to get that update. In
fact, there was a post just after mine from someone using git who ran
into the same problem. The response he got was that he had to wait 24
hours until his git master was updated. If you ever run into issues and
want to raise/discuss them on the dev list, you will also get better
results if your based on the bzr branch as people don't know if your
being affected by a bug which may have already been fixed in bzr but has
not yet been copied over to git. Consequently, the common response is to
tell someone to wait 24 hours, update and see if the bug still exists,
if it does, come back and raise it again.

For example, the current git version is 

commit 0cc4633247929de05e1ae58cea225137074764c0
Author: Paul Eggert <address@hidden>
Date:   Sun Feb 20 11:46:08 2011 -0800

while the current bzr revision is

revno: 103370
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Mon 2011-02-21 01:03:36 -0500

and there is a difference of 5 commits between the two. 

Given the typical difference in refresh/update times between git and bzr
are minimal, I think its worth sticking with bzr. If you ever plan to
contribute bug fixes or other code, bzr will also be a better way to go
as your patches will likely be better accepted or you may even be able
to push changes up to get them merged in etc. While this is still
possible with git, it is a bit harder - anything that makes things
easier is more likely to increase the likelihood your contributions are
accepted. Reporting issues is easier as well as you have the bzr revno
readily available. 

Of course it all comes down to what you want and what you expect to do.
If all you want is a fairly up-to-date version of the dev code and you
don't plan to work on bugs, report problems or participate in
development, then the git clone is probably fine. However, if you plan
to work on bugs/submissions, participate in development etc, bzr is
really the only sane choice. 

Tim

-- 
tcross (at) rapttech dot com dot au


reply via email to

[Prev in Thread] Current Thread [Next in Thread]