* Emacs Bazaar repository
@ 2008-03-12 23:41 Jason Earl
2008-03-13 1:48 ` Stefan Monnier
` (14 more replies)
0 siblings, 15 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-12 23:41 UTC (permalink / raw)
To: bazaar, emacs-devel
After a few false starts I have been successful (at least as far as I
can tell) in importing the Emacs CVS repository into Bazaar. If anyone
is interested in playing with the results you can check out the HEAD of
the CVS repository with:
bzr clone http://bzr.notengoamigos.org/emacs/trunk/
The other branches are available as well and have URLs like:
http://bzr.notengoamigos.org/emacs/branches/<branch-name>/
For more information please see:
http://bzr.notengoamigos.org/
This repository is obviously something that should mostly interest Emacs
developers, but I'm sending this email to the bazaar mailing list as
well in case they are curious.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
@ 2008-03-13 1:48 ` Stefan Monnier
2008-03-13 1:52 ` dhruva
` (13 subsequent siblings)
14 siblings, 0 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-13 1:48 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
> is interested in playing with the results you can check out the HEAD of
> the CVS repository with:
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
> The other branches are available as well and have URLs like:
> http://bzr.notengoamigos.org/emacs/branches/<branch-name>/
> For more information please see:
> http://bzr.notengoamigos.org/
> This repository is obviously something that should mostly interest Emacs
> developers, but I'm sending this email to the bazaar mailing list as
> well in case they are curious.
Thank you very much. Now we'll be able to finally try out Bzr and see
if it's good enough.
I encourage everyone to try it out,
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
2008-03-13 1:48 ` Stefan Monnier
@ 2008-03-13 1:52 ` dhruva
2008-03-13 2:26 ` Bastien
2008-03-13 2:28 ` Stefan Monnier
2008-03-13 4:06 ` Karl Fogel
` (12 subsequent siblings)
14 siblings, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-13 1:52 UTC (permalink / raw)
To: Jason Earl, bazaar, emacs-devel
Well, now we have cvs, git, mercurial and bazaar. Having a subversion
repository will complete the long story.
I just hope this indecision will not continue for too long and confuse
people in terms of which repository to use. So far, i just had to
mention 'emacs head' has this problem on some platform in reporting
bugs. I have now started adding the repo info too!
I request the new maintainers to make a decision in the near future
and streamline this for 23 series.
-dhruva
On 3/13/08, Jason Earl <jearl@xmission.com> wrote:
>
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
> is interested in playing with the results you can check out the HEAD of
> the CVS repository with:
>
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>
> The other branches are available as well and have URLs like:
>
> http://bzr.notengoamigos.org/emacs/branches/<branch-name>/
>
> For more information please see:
>
> http://bzr.notengoamigos.org/
>
> This repository is obviously something that should mostly interest Emacs
> developers, but I'm sending this email to the bazaar mailing list as
> well in case they are curious.
>
> Jason
>
>
>
--
Sent from Gmail for mobile | mobile.google.com
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 1:52 ` dhruva
@ 2008-03-13 2:26 ` Bastien
2008-03-13 2:28 ` Stefan Monnier
1 sibling, 0 replies; 236+ messages in thread
From: Bastien @ 2008-03-13 2:26 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, Jason Earl, emacs-devel
dhruva <dhruvakm@gmail.com> writes:
> I request the new maintainers to make a decision in the near future
> and streamline this for 23 series.
AFAIU the decision has been made to use bzr.
The switch doesn't depend on the Emacs maintainers only, it also depends
on savannah maintainers, since the bzr repo has to live there.
Jason's bzr repo is not just "another" repo, it already helps people
testing bzr. This is useful in any case for all Emacs maintainers.
--
Bastien
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 1:52 ` dhruva
2008-03-13 2:26 ` Bastien
@ 2008-03-13 2:28 ` Stefan Monnier
2008-03-13 3:12 ` dhruva
1 sibling, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-13 2:28 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, Jason Earl, emacs-devel
> Well, now we have cvs, git, mercurial and bazaar. Having a subversion
You forgot to mention Arch, which with CVS is the only one actually used
very actively for development (it's used to keep branches in sync).
> repository will complete the long story.
> I just hope this indecision will not continue for too long and confuse
> people in terms of which repository to use. So far, i just had to
> mention 'emacs head' has this problem on some platform in reporting
> bugs. I have now started adding the repo info too!
> I request the new maintainers to make a decision in the near future
> and streamline this for 23 series.
As long as the forgeign branches are kept in sync with the CVS branches,
I don't think it's a big deal. For me the plan goes as follows:
- ascertain that Bzr is good enough for our usage pattern.
- place Bzr branches that mirror the CVS ones (and are kept in sync)
on savannah.
- get vc-status to a good enough shape to be usable on those Bzr branches.
- get Miles to switch from Arch to Bzr to do the merge between branches.
- drop the CVS repository.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 2:28 ` Stefan Monnier
@ 2008-03-13 3:12 ` dhruva
0 siblings, 0 replies; 236+ messages in thread
From: dhruva @ 2008-03-13 3:12 UTC (permalink / raw)
To: Stefan Monnier, Jason Earl, bazaar, emacs-devel
Sounds practical. I will start using bazaar baz/bzr(is it bazaar-ng
written in python or the earlier 'c' implementation). For records, I
have tried using all the emacs repositories from cvs,tla,hg,git and
will try bzr/baz too. Command usage and deployment based, tla was
toughest followed by git and cvs. mercurial were easiest to deploy and
use. If it is bzr (python implementation), it will share mercurial's
ease of deployment.
-dhruva
On 3/13/08, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
> > Well, now we have cvs, git, mercurial and bazaar. Having a subversion
>
> You forgot to mention Arch, which with CVS is the only one actually used
> very actively for development (it's used to keep branches in sync).
>
> > repository will complete the long story.
> > I just hope this indecision will not continue for too long and confuse
> > people in terms of which repository to use. So far, i just had to
> > mention 'emacs head' has this problem on some platform in reporting
> > bugs. I have now started adding the repo info too!
> > I request the new maintainers to make a decision in the near future
> > and streamline this for 23 series.
>
> As long as the forgeign branches are kept in sync with the CVS branches,
> I don't think it's a big deal. For me the plan goes as follows:
> - ascertain that Bzr is good enough for our usage pattern.
> - place Bzr branches that mirror the CVS ones (and are kept in sync)
> on savannah.
> - get vc-status to a good enough shape to be usable on those Bzr branches.
> - get Miles to switch from Arch to Bzr to do the merge between branches.
> - drop the CVS repository.
>
>
> Stefan
>
--
Sent from Gmail for mobile | mobile.google.com
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
2008-03-13 1:48 ` Stefan Monnier
2008-03-13 1:52 ` dhruva
@ 2008-03-13 4:06 ` Karl Fogel
2008-03-13 4:11 ` Jonathan Lange
2008-03-13 15:30 ` Karl Fogel
2008-03-13 4:09 ` Emacs Bazaar repository Karl Fogel
` (11 subsequent siblings)
14 siblings, 2 replies; 236+ messages in thread
From: Karl Fogel @ 2008-03-13 4:06 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
Jason Earl <jearl@xmission.com> writes:
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
> is interested in playing with the results you can check out the HEAD of
> the CVS repository with:
>
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>
> The other branches are available as well and have URLs like:
>
> http://bzr.notengoamigos.org/emacs/branches/<branch-name>/
>
> For more information please see:
>
> http://bzr.notengoamigos.org/
Thanks for doing this. Two questions:
1) If we commit to ("push to", whatever the appropriate term is) this
repository, will the changes show up in CVS? (I'm assuming CVS is
still considered the master until some official switchover.)
2) I run Debian GNU/Linux ("testing" dist) and have installed the
'bzr' package now using 'apt-get'. Given the many variants of
Bazaar(s) that have existed over the years, I can't be positive
that 'bzr' is the right package; if it is not, someone please post
here saying what is :-).
-Karl
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (2 preceding siblings ...)
2008-03-13 4:06 ` Karl Fogel
@ 2008-03-13 4:09 ` Karl Fogel
2008-03-13 4:15 ` Jonathan Lange
` (2 more replies)
2008-03-13 4:19 ` Eric Hanchrow
` (10 subsequent siblings)
14 siblings, 3 replies; 236+ messages in thread
From: Karl Fogel @ 2008-03-13 4:09 UTC (permalink / raw)
To: Jason Earl; +Cc: emacs-devel
Jason Earl <jearl@xmission.com> writes:
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
By the way, strongly suggest a dest name after that:
bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
or something. Probably no one wants their local clone directory to be
named "trunk" :-).
-Karl
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:06 ` Karl Fogel
@ 2008-03-13 4:11 ` Jonathan Lange
2008-03-29 1:00 ` Xavier Maillard
2008-03-13 15:30 ` Karl Fogel
1 sibling, 1 reply; 236+ messages in thread
From: Jonathan Lange @ 2008-03-13 4:11 UTC (permalink / raw)
To: Karl Fogel; +Cc: bazaar, Jason Earl, emacs-devel
On Thu, Mar 13, 2008 at 3:06 PM, Karl Fogel <kfogel@red-bean.com> wrote:
> 2) I run Debian GNU/Linux ("testing" dist) and have installed the
> 'bzr' package now using 'apt-get'. Given the many variants of
> Bazaar(s) that have existed over the years, I can't be positive
> that 'bzr' is the right package; if it is not, someone please post
> here saying what is :-).
>
'bzr' is the right one. Work is underway to have the package renamed
to 'bazaar'.
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:09 ` Emacs Bazaar repository Karl Fogel
@ 2008-03-13 4:15 ` Jonathan Lange
2008-03-13 4:30 ` Jonathan Lange
2008-03-13 9:58 ` Andreas Schwab
2008-03-13 5:08 ` Jason Earl
2008-03-13 10:39 ` Juanma Barranquero
2 siblings, 2 replies; 236+ messages in thread
From: Jonathan Lange @ 2008-03-13 4:15 UTC (permalink / raw)
To: Karl Fogel; +Cc: Jason Earl, emacs-devel
On Thu, Mar 13, 2008 at 3:09 PM, Karl Fogel <kfogel@red-bean.com> wrote:
> Jason Earl <jearl@xmission.com> writes:
>
> > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>
> By the way, strongly suggest a dest name after that:
>
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
>
> or something. Probably no one wants their local clone directory to be
> named "trunk" :-).
>
Actually, it's probably a good idea to do make a shared repository
called 'emacs-bzr' and use the original clone command inside that. So,
bzr init-repo emacs-bzr
cd emacs-bzr
bzr clone http://bzr.notengoamigos.org/emacs/trunk/
That way, Bazaar will share revisions between branches of Emacs,
making it faster to clone other branches.
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (3 preceding siblings ...)
2008-03-13 4:09 ` Emacs Bazaar repository Karl Fogel
@ 2008-03-13 4:19 ` Eric Hanchrow
2008-03-13 5:20 ` Jason Earl
2008-03-13 7:43 ` Thien-Thi Nguyen
` (9 subsequent siblings)
14 siblings, 1 reply; 236+ messages in thread
From: Eric Hanchrow @ 2008-03-13 4:19 UTC (permalink / raw)
To: emacs-devel; +Cc: bazaar
I tried
$ bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
bzr ground for about an hour, using 100% of the CPU, then finally failed with
bzr: ERROR: No such file: 'http://bzr.notengoamigos.org/emacs/.bzr/repository/indices/5b5aedf70f9a908bd9b77d5e921f468f.tix'
--
Like most people, I would like to use the words ''parameters''
and ''behoove'' in the same sentence, but I am not sure how.
-- A Question for 'Ask Mister Language Person'
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:15 ` Jonathan Lange
@ 2008-03-13 4:30 ` Jonathan Lange
2008-03-14 1:11 ` Dan Nicolaescu
2008-03-13 9:58 ` Andreas Schwab
1 sibling, 1 reply; 236+ messages in thread
From: Jonathan Lange @ 2008-03-13 4:30 UTC (permalink / raw)
To: Karl Fogel; +Cc: Jason Earl, emacs-devel
On Thu, Mar 13, 2008 at 3:15 PM, Jonathan Lange <jml@mumak.net> wrote:
>
> On Thu, Mar 13, 2008 at 3:09 PM, Karl Fogel <kfogel@red-bean.com> wrote:
> > Jason Earl <jearl@xmission.com> writes:
> >
> > > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
> >
> > By the way, strongly suggest a dest name after that:
> >
> > bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
> >
> > or something. Probably no one wants their local clone directory to be
> > named "trunk" :-).
> >
>
> Actually, it's probably a good idea to do make a shared repository
> called 'emacs-bzr' and use the original clone command inside that. So,
>
> bzr init-repo emacs-bzr
> cd emacs-bzr
>
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>
> That way, Bazaar will share revisions between branches of Emacs,
> making it faster to clone other branches.
>
Which reminds me. An even better way to do the initial download is this:
# Get the tarball
$ wget http://bzr.notengoamigos.org/emacs.tar.gz
$ tar xzf emacs.tar.gz
# Make a repo
$ bzr init-repo emacs-bzr
# Seed it with the downloaded branch
$ cd emacs-bzr
$ bzr branch ../emacs trunk
(Assuming that the tarball extracts to a directory called 'emacs/').
# Get the latest changes
$ cd trunk
$ bzr pull --remember http://bzr.notengoamigos.org/emacs/trunk/
After you've done this, you'll only need to do 'bzr pull' in the trunk
directory to get the latest changes, and doing 'bzr branch
http://bzr.notengoamigos.org/emacs/branches/<foo>' should be much
faster.
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:09 ` Emacs Bazaar repository Karl Fogel
2008-03-13 4:15 ` Jonathan Lange
@ 2008-03-13 5:08 ` Jason Earl
2008-03-13 10:39 ` Juanma Barranquero
2 siblings, 0 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-13 5:08 UTC (permalink / raw)
To: Karl Fogel; +Cc: emacs-devel
Karl Fogel <kfogel@red-bean.com> writes:
> Jason Earl <jearl@xmission.com> writes:
>> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>
> By the way, strongly suggest a dest name after that:
>
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
>
> or something. Probably no one wants their local clone directory to be
> named "trunk" :-).
>
> -Karl
Thanks to some pointers from Jonathan Lange I have updated the
instructions at:
http://bzr.notengoamigos.org/
for using this repository to strongly emphasize getting the tarball of
the shared repository. If you really want to play with this your first
step should almost certainly be:
wget -c http://bzr.notengoamigos.org/emacs.tar.gz
(or get the lzma compressed version if you'd like). There are more
instructions on the web site.
There are two reasons for this. The first is that the process that I
use to update the repository from CVS apparently shifts some of the
packs around. Unless you have a very fast connection and you time
things just right you are very likely to end up in a situation where
your client bzr is looking for pack files that have moved on my server.
This will cause the client to abort. That's not a big deal if you are
just trying to pull down the last 20 changesets or so. Issuing another
"bzr pull" will fix the problem in a couple of seconds. If you are 95%
of the way through pulling down the 97000 or so changesets in the trunk,
then you'll probably be unhappy. There probably is a better way to
update the repository so that this doesn't happen, but I am still
figuring some of this stuff out :).
The second reason is that you can't really evaluate the usefulness of
Bazaar without using a shared repository.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:19 ` Eric Hanchrow
@ 2008-03-13 5:20 ` Jason Earl
2008-03-13 8:04 ` dhruva
2008-03-13 11:20 ` James Westby
0 siblings, 2 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-13 5:20 UTC (permalink / raw)
To: Eric Hanchrow; +Cc: bazaar, emacs-devel
Eric Hanchrow <offby1@blarg.net> writes:
> I tried
>
> $ bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
>
> bzr ground for about an hour, using 100% of the CPU, then finally failed with
>
> bzr: ERROR: No such file: 'http://bzr.notengoamigos.org/emacs/.bzr/repository/indices/5b5aedf70f9a908bd9b77d5e921f468f.tix'
The process I use to update the Bazaar repository from CVS apparently
moves some of the needed pack and index files around. It's possible
that you could go into the directory that was created and do a "bzr
pull" and finish the download, but I am not sure if that always works or
if I just got lucky one time :).
I would suggest that you download the premade repository, cd to the
branches directory and then do try your command again.
$ bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
This will be *much* faster as it will re use the changesets that trunk
and EMACS_22_BASE have in common. I am going to get in touch with the
bazaar mailing lists and see if there is a better way to do what I am
doing. It's possible that using the "smart" server would protect you
from this occurrence (I don't know), but the smart server is even slower
when checking out these large branches. Part of that may be the fact
that my server is not very powerful and using the smart server puts most
of the processing burden on the server end.
I am ccing this to the bazaar mailing list as well to see if anyone
there can help.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (4 preceding siblings ...)
2008-03-13 4:19 ` Eric Hanchrow
@ 2008-03-13 7:43 ` Thien-Thi Nguyen
2008-03-13 8:49 ` Jason Earl
2008-03-13 11:43 ` Andreas Schwab
` (8 subsequent siblings)
14 siblings, 1 reply; 236+ messages in thread
From: Thien-Thi Nguyen @ 2008-03-13 7:43 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
I see:
$ bzr --version
Bazaar (bzr) 0.11.0
Using python interpreter: /usr/bin/python
Using python standard library: /usr/lib/python2.4
Using bzrlib: /usr/lib/python2.4/site-packages/bzrlib
$ bzr clone http://bzr.notengoamigos.org/emacs/trunk/ bzr-emacs
bzr: ERROR: Unknown branch format: 'Bazaar Branch Format 6 (bzr 0.15)\n'
What can i do to make this version of bzr to work w/ that repo?
thi
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 5:20 ` Jason Earl
@ 2008-03-13 8:04 ` dhruva
2008-03-13 9:04 ` Thien-Thi Nguyen
2008-03-13 23:46 ` Jonathan Lange
2008-03-13 11:20 ` James Westby
1 sibling, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-13 8:04 UTC (permalink / raw)
To: Jason Earl; +Cc: emacs-devel
Hi,
I got bzr setup and running on my M$-XP box. I got the bzr repo of
emacs (by downloading the emacs.tar.gz) and updated it to the latest.
I wanted to make sure the recent changesets are pulled in. I typed
"bzr log -l 10". It took ~24 seconds (elapsed time from perfmon)
consistently. Whereas Mercurial (hg log -l 10) on the trunk to 2
seconds (and the mercurial repo is on a CIFS mounted drive while bzr
repo was on local disk). GIT was fastest though even on a CIFS mounted
system.
IMHO, the performance aspects must be considered seriously.
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 7:43 ` Thien-Thi Nguyen
@ 2008-03-13 8:49 ` Jason Earl
2008-03-13 9:07 ` Thien-Thi Nguyen
2008-03-13 13:11 ` Aaron Bentley
0 siblings, 2 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-13 8:49 UTC (permalink / raw)
To: Thien-Thi Nguyen; +Cc: bazaar, emacs-devel
Thien-Thi Nguyen <ttn@gnuvola.org> writes:
> I see:
>
> $ bzr --version
> Bazaar (bzr) 0.11.0
> Using python interpreter: /usr/bin/python
> Using python standard library: /usr/lib/python2.4
> Using bzrlib: /usr/lib/python2.4/site-packages/bzrlib
>
> $ bzr clone http://bzr.notengoamigos.org/emacs/trunk/ bzr-emacs
> bzr: ERROR: Unknown branch format: 'Bazaar Branch Format 6 (bzr 0.15)\n'
>
> What can i do to make this version of bzr to work w/ that repo?
>
> thi
Unfortunately you need a newer version of bzr. I don't think that I
could migrate the current repository to the older format even if I
wanted to do so.
Sorry.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 8:04 ` dhruva
@ 2008-03-13 9:04 ` Thien-Thi Nguyen
2008-03-13 9:41 ` David Kastrup
2008-03-13 23:46 ` Jonathan Lange
1 sibling, 1 reply; 236+ messages in thread
From: Thien-Thi Nguyen @ 2008-03-13 9:04 UTC (permalink / raw)
To: dhruva; +Cc: emacs-devel
() dhruva <dhruvakm@gmail.com>
() Thu, 13 Mar 2008 13:34:56 +0530
IMHO, the performance aspects must be considered seriously.
If performance can't be engineered into the entire system, the
usual (serious) way to do it is to use hierarchy to partially
separate the slow parts from the fast parts.
CPU <-> L[1...n]-CACHE <-> MEMORY <-> DISK <-> NETWORK
Here, CPU can spin as fast as it wants. It is not limited by
speeds between other elements of the hierarchy, apart from
L1-CACHE, and yet can (if All Goes Well :--) conduct useful
dialogue w/ NETWORK anyway.
I think a similar arrangement is best for my case:
ttn <-> git <-> bzr <-> emacs@internet
Since i cannot make bzr faster, i do my local spinning w/ Git.
Presently, i'm still (half-heartedly) searching for the git/bzr
gateway, hoping someone will post a url... btw, i see there is
already some thought on the problem for Git and Mercurial:
<http://thunk.org/tytso/blog/2007/03/24/git-and-hg/>.
For the email-only crowd, on that webpage, Theodore T'so sez:
| So basically git does have short-comings, yes, but people will
| come out in different places about which tools is best for them,
| and that’s OK. Actually, I think the ultimate solution for this
| problem is to build a bidrectoinal hg/git gateway. There are
| tools that will export from hg to git, and vice versa, and they
| are actually pretty sophisticated. I don’t think it should be
| that painful to create a tool that does incremental exports in
| both directions, maintaining state so that the right thing
| happens when a commit gets made on the git side, and gets
| exported into hg, or vice versa. Ultimately I think that’s the
| best solution, since that way people can use whatever tool they
| want, and still contribute and development as first class
| citizens. This is the main reason why I’ve held off on
| converting e2fsprogs to git (although I have made some private
| test repositories which I’ll use to take advantage of git’s
| superior annotation and query/log utilities); I don’t want to
| make a git repository of e2fsprogs public until I’m sure that a
| bidrectional gateway tool won’t require me to make any changes
| that affect the commit-id’s, since that would invalidate any
| work that people have done that was based on a clone of the
| coverted git repository.
|
| I have a rough design for how to do the bidirectional gateway,
| but the issue is finding time to implement it. Anyone with free
| time looking for a project? If so, contact me. I probably should
| have written this up as a potential Google Summer of Code
| project, but it’s too late for this year. Oh, well.
IMHO, it's just a matter of time until some Righteous Hacker
stitches it all together. It's a nice problem.
thi
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 8:49 ` Jason Earl
@ 2008-03-13 9:07 ` Thien-Thi Nguyen
2008-03-13 13:11 ` Aaron Bentley
1 sibling, 0 replies; 236+ messages in thread
From: Thien-Thi Nguyen @ 2008-03-13 9:07 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
() Jason Earl <jearl@xmission.com>
() Thu, 13 Mar 2008 02:49:06 -0600
Unfortunately you need a newer version of bzr. I don't think that I
could migrate the current repository to the older format even if I
wanted to do so.
OK, will try a newer bzr (grumble grumble).
thi
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 9:04 ` Thien-Thi Nguyen
@ 2008-03-13 9:41 ` David Kastrup
2008-03-13 12:08 ` Thien-Thi Nguyen
0 siblings, 1 reply; 236+ messages in thread
From: David Kastrup @ 2008-03-13 9:41 UTC (permalink / raw)
To: Thien-Thi Nguyen; +Cc: emacs-devel
Thien-Thi Nguyen <ttn@gnuvola.org> writes:
> () dhruva <dhruvakm@gmail.com>
> () Thu, 13 Mar 2008 13:34:56 +0530
>
> IMHO, the performance aspects must be considered seriously.
>
> If performance can't be engineered into the entire system, the
> usual (serious) way to do it is to use hierarchy to partially
> separate the slow parts from the fast parts.
>
> CPU <-> L[1...n]-CACHE <-> MEMORY <-> DISK <-> NETWORK
>
> Here, CPU can spin as fast as it wants. It is not limited by
> speeds between other elements of the hierarchy, apart from
> L1-CACHE, and yet can (if All Goes Well :--) conduct useful
> dialogue w/ NETWORK anyway.
>
> I think a similar arrangement is best for my case:
>
> ttn <-> git <-> bzr <-> emacs@internet
>
> Since i cannot make bzr faster, i do my local spinning w/ Git.
> Presently, i'm still (half-heartedly) searching for the git/bzr
> gateway, hoping someone will post a url...
There is something called tailor or taylor.
--
David Kastrup
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:15 ` Jonathan Lange
2008-03-13 4:30 ` Jonathan Lange
@ 2008-03-13 9:58 ` Andreas Schwab
2008-03-13 22:13 ` Jonathan Lange
1 sibling, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-13 9:58 UTC (permalink / raw)
To: Jonathan Lange; +Cc: Karl Fogel, Jason Earl, emacs-devel
"Jonathan Lange" <jml@mumak.net> writes:
> Actually, it's probably a good idea to do make a shared repository
> called 'emacs-bzr' and use the original clone command inside that. So,
>
> bzr init-repo emacs-bzr
> cd emacs-bzr
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>
> That way, Bazaar will share revisions between branches of Emacs,
> making it faster to clone other branches.
Can you do that sharing also between different directories, that is the
equivalent of git clone --reference?
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:09 ` Emacs Bazaar repository Karl Fogel
2008-03-13 4:15 ` Jonathan Lange
2008-03-13 5:08 ` Jason Earl
@ 2008-03-13 10:39 ` Juanma Barranquero
2008-03-13 14:45 ` Stefan Monnier
2 siblings, 1 reply; 236+ messages in thread
From: Juanma Barranquero @ 2008-03-13 10:39 UTC (permalink / raw)
To: Karl Fogel; +Cc: Jason Earl, emacs-devel
On Thu, Mar 13, 2008 at 5:09 AM, Karl Fogel <kfogel@red-bean.com> wrote:
> Probably no one wants their local clone directory to be
> named "trunk" :-).
My CVS checkout of Emacs' trunk is in a directory named "trunk"... :)
(But I agree it is a good idea to suggest a directory name)
Juanma
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 5:20 ` Jason Earl
2008-03-13 8:04 ` dhruva
@ 2008-03-13 11:20 ` James Westby
2008-03-13 16:37 ` Jason Earl
1 sibling, 1 reply; 236+ messages in thread
From: James Westby @ 2008-03-13 11:20 UTC (permalink / raw)
To: Jason Earl; +Cc: Eric Hanchrow, bazaar, emacs-devel
On Wed, 2008-03-12 at 23:20 -0600, Jason Earl wrote:
> Eric Hanchrow <offby1@blarg.net> writes:
>
> > I tried
> >
> > $ bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
> >
> > bzr ground for about an hour, using 100% of the CPU, then finally failed with
> >
> > bzr: ERROR: No such file: 'http://bzr.notengoamigos.org/emacs/.bzr/repository/indices/5b5aedf70f9a908bd9b77d5e921f468f.tix'
>
> The process I use to update the Bazaar repository from CVS apparently
> moves some of the needed pack and index files around. It's possible
> that you could go into the directory that was created and do a "bzr
> pull" and finish the download, but I am not sure if that always works or
> if I just got lucky one time :).
Hi,
Can you tell us what that process is?
(Apologies if I missed that in previous mails).
> I would suggest that you download the premade repository, cd to the
> branches directory and then do try your command again.
>
> $ bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
>
> This will be *much* faster as it will re use the changesets that trunk
> and EMACS_22_BASE have in common. I am going to get in touch with the
> bazaar mailing lists and see if there is a better way to do what I am
> doing. It's possible that using the "smart" server would protect you
> from this occurrence (I don't know), but the smart server is even slower
> when checking out these large branches. Part of that may be the fact
> that my server is not very powerful and using the smart server puts most
> of the processing burden on the server end.
If this is caused by what I think it is then the smart server won't
help unfortunately.
I can recommend that everyone sets up a shared repository for
themselves (bzr init-repo dir), it will massively reduce disk usage
and time for some operations.
You need to do this before creating a branch, and then create the branch
inside the directory you create (the dir argument to init-repo). Then
all branches that you create under there will share storage where
possible.
Jason, did you create these branches in a rich-root-pack format
repository, or just pack-0.92 (the default with 1.0 or later)?
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (5 preceding siblings ...)
2008-03-13 7:43 ` Thien-Thi Nguyen
@ 2008-03-13 11:43 ` Andreas Schwab
2008-03-13 11:55 ` David Kastrup
` (5 more replies)
2008-03-13 13:07 ` Andrea Russo
` (7 subsequent siblings)
14 siblings, 6 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-13 11:43 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
My first impression is that bzr is slow, so slow that it is completely
unusable. How can it come that a simple bzr log takes more than a
minute to even start? Even cvs log is instantaneous in comparison,
although it has to request the log from the server.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:43 ` Andreas Schwab
@ 2008-03-13 11:55 ` David Kastrup
2008-03-14 9:58 ` Matthieu Moy
2008-03-13 20:27 ` Eli Zaretskii
` (4 subsequent siblings)
5 siblings, 1 reply; 236+ messages in thread
From: David Kastrup @ 2008-03-13 11:55 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Jason Earl, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> My first impression is that bzr is slow, so slow that it is completely
> unusable. How can it come that a simple bzr log takes more than a
> minute to even start? Even cvs log is instantaneous in comparison,
> although it has to request the log from the server.
I find this surprising: "git log" is pretty much instantaneous, and git
recalculates a code piece's history in the process (renaming and copying
is not tracked by git, but calculated on the fly when you ask for log
output). In contrast, one has to tell Bazaar IIRC when one copies or
moves or renames files, so it should have the information available
right away.
--
David Kastrup
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 9:41 ` David Kastrup
@ 2008-03-13 12:08 ` Thien-Thi Nguyen
0 siblings, 0 replies; 236+ messages in thread
From: Thien-Thi Nguyen @ 2008-03-13 12:08 UTC (permalink / raw)
To: David Kastrup; +Cc: emacs-devel
() David Kastrup <dak@gnu.org>
() Thu, 13 Mar 2008 10:41:45 +0100
There is something called tailor or taylor.
Thanks for the tip. I have found its homepage:
http://progetti.arstecnica.it/tailor/wiki
thi
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (6 preceding siblings ...)
2008-03-13 11:43 ` Andreas Schwab
@ 2008-03-13 13:07 ` Andrea Russo
2008-03-14 9:16 ` Nicholas Allen
2008-03-13 14:18 ` Andreas Schwab
` (6 subsequent siblings)
14 siblings, 1 reply; 236+ messages in thread
From: Andrea Russo @ 2008-03-13 13:07 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
Jason Earl <jearl@xmission.com> writes:
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar.
Thank you.
> If anyone is interested in playing with the results you can check out
> the HEAD of the CVS repository with:
>
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
I tried with:
bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
I ran it for 8 hours over a 2Mbit ADSL line then got bored (because it
was crunching my hard disk) a killed it. The bzr status bar was around
70%.
I used to keep in sync my Emacs repository from Miles Arch repo and IIRC
the inital copy took much less time.
Recently I switched to git using `git://git.sv.gnu.org/emacs.git' and
the clone operation took less than an hour.
Regards,
Andrea.
--
Do not worry about your difficulties in mathematics;
I can assure you that mine are still greater.
-- Albert Einstein
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 8:49 ` Jason Earl
2008-03-13 9:07 ` Thien-Thi Nguyen
@ 2008-03-13 13:11 ` Aaron Bentley
1 sibling, 0 replies; 236+ messages in thread
From: Aaron Bentley @ 2008-03-13 13:11 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, Thien-Thi Nguyen, emacs-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Jason Earl wrote:
> Unfortunately you need a newer version of bzr. I don't think that I
> could migrate the current repository to the older format even if I
> wanted to do so.
I don't think it would be particularly hard to convert it to the "knit"
format that was used in 0.11, but I think it would be a pretty bad idea.
Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD4DBQFH2SgG0F+nu1YWqI0RAk4AAJdg/i7dMIDqyN8JM3Fjw3EPBOKTAJ0aNXzd
wWFsEI7+CXrMh1Es2gcoCQ==
=bRvU
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (7 preceding siblings ...)
2008-03-13 13:07 ` Andrea Russo
@ 2008-03-13 14:18 ` Andreas Schwab
2008-03-14 18:08 ` Stefan Monnier
` (5 subsequent siblings)
14 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-13 14:18 UTC (permalink / raw)
To: Jason Earl; +Cc: emacs-devel
Jason Earl <jearl@xmission.com> writes:
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
> is interested in playing with the results you can check out the HEAD of
> the CVS repository with:
>
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
It looks like all commit dates are off by 4 hours.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 10:39 ` Juanma Barranquero
@ 2008-03-13 14:45 ` Stefan Monnier
0 siblings, 0 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-13 14:45 UTC (permalink / raw)
To: Juanma Barranquero; +Cc: Karl Fogel, Jason Earl, emacs-devel
> My CVS checkout of Emacs' trunk is in a directory named "trunk"... :)
Same here,
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:06 ` Karl Fogel
2008-03-13 4:11 ` Jonathan Lange
@ 2008-03-13 15:30 ` Karl Fogel
2008-03-13 15:58 ` dhruva
` (2 more replies)
1 sibling, 3 replies; 236+ messages in thread
From: Karl Fogel @ 2008-03-13 15:30 UTC (permalink / raw)
To: Jason Earl; +Cc: emacs-devel
Never got an answer to this question:
Karl Fogel <kfogel@red-bean.com> writes:
> 1) If we commit to ("push to", whatever the appropriate term is) this
> repository, will the changes show up in CVS? (I'm assuming CVS is
> still considered the master until some official switchover.)
It'd be good to know where to commit... :-)
Thanks,
-Karl
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 15:30 ` Karl Fogel
@ 2008-03-13 15:58 ` dhruva
2008-03-13 16:50 ` Jason Earl
2008-03-13 20:18 ` How to spell "commit" [was: bikeshedding bzr (or similar) :] Stephen J. Turnbull
2 siblings, 0 replies; 236+ messages in thread
From: dhruva @ 2008-03-13 15:58 UTC (permalink / raw)
To: Karl Fogel; +Cc: Jason Earl, emacs-devel
Hi,
From what little I know, there is no bidirectional sync support at
the moment. CVS still appears to be the official repository into which
someone with write access should push the changes. This is based on my
observations of miles getting his code from Arch to CVS.
-dhruva
On Thu, Mar 13, 2008 at 9:00 PM, Karl Fogel <kfogel@red-bean.com> wrote:
> Never got an answer to this question:
>
>
> Karl Fogel <kfogel@red-bean.com> writes:
> > 1) If we commit to ("push to", whatever the appropriate term is) this
> > repository, will the changes show up in CVS? (I'm assuming CVS is
> > still considered the master until some official switchover.)
>
> It'd be good to know where to commit... :-)
>
> Thanks,
> -Karl
>
>
>
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:20 ` James Westby
@ 2008-03-13 16:37 ` Jason Earl
0 siblings, 0 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-13 16:37 UTC (permalink / raw)
To: James Westby; +Cc: Eric Hanchrow, bazaar, emacs-devel
James Westby <jw+debian@jameswestby.net> writes:
> On Wed, 2008-03-12 at 23:20 -0600, Jason Earl wrote:
>> Eric Hanchrow <offby1@blarg.net> writes:
>>
>> > I tried
>> >
>> > $ bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
>> >
>> > bzr ground for about an hour, using 100% of the CPU, then finally failed with
>> >
>> > bzr: ERROR: No such file: 'http://bzr.notengoamigos.org/emacs/.bzr/repository/indices/5b5aedf70f9a908bd9b77d5e921f468f.tix'
>>
>> The process I use to update the Bazaar repository from CVS apparently
>> moves some of the needed pack and index files around. It's possible
>> that you could go into the directory that was created and do a "bzr
>> pull" and finish the download, but I am not sure if that always works or
>> if I just got lucky one time :).
>
> Hi,
>
> Can you tell us what that process is?
>
> (Apologies if I missed that in previous mails).
>
>> I would suggest that you download the premade repository, cd to the
>> branches directory and then do try your command again.
>>
>> $ bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
>>
>> This will be *much* faster as it will re use the changesets that trunk
>> and EMACS_22_BASE have in common. I am going to get in touch with the
>> bazaar mailing lists and see if there is a better way to do what I am
>> doing. It's possible that using the "smart" server would protect you
>> from this occurrence (I don't know), but the smart server is even slower
>> when checking out these large branches. Part of that may be the fact
>> that my server is not very powerful and using the smart server puts most
>> of the processing burden on the server end.
>
> If this is caused by what I think it is then the smart server won't
> help unfortunately.
>
> I can recommend that everyone sets up a shared repository for
> themselves (bzr init-repo dir), it will massively reduce disk usage
> and time for some operations.
My original instructions didn't stress using a shared repository, but my
current ones do. In fact, my current instructions suggest downloading a
premade shared repository.
> You need to do this before creating a branch, and then create the
> branch inside the directory you create (the dir argument to
> init-repo). Then all branches that you create under there will share
> storage where possible.
>
> Jason, did you create these branches in a rich-root-pack format
> repository, or just pack-0.92 (the default with 1.0 or later)?
I used the default pack-0.92 format. I honestly wasn't sure which
format was the most appropriate.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 15:30 ` Karl Fogel
2008-03-13 15:58 ` dhruva
@ 2008-03-13 16:50 ` Jason Earl
2008-03-13 20:18 ` How to spell "commit" [was: bikeshedding bzr (or similar) :] Stephen J. Turnbull
2 siblings, 0 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-13 16:50 UTC (permalink / raw)
To: Karl Fogel; +Cc: emacs-devel
Karl Fogel <kfogel@red-bean.com> writes:
> Never got an answer to this question:
>
> Karl Fogel <kfogel@red-bean.com> writes:
>> 1) If we commit to ("push to", whatever the appropriate term is) this
>> repository, will the changes show up in CVS? (I'm assuming CVS is
>> still considered the master until some official switchover.)
>
> It'd be good to know where to commit... :-)
>
> Thanks,
> -Karl
I'm just some random guy that lurks on emacs-devel :). I set up a test
repository because A) I like playing with version control systems, B) I
thought it would be helpful, and C) I was curious to see if it could
even be done.
In short, this repository is about as official as a $3 bill. Someone
mentioned that a Bazaar repository should be set up, and I just happened
to be experimenting with Bazaar using the Emacs code base.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* How to spell "commit" [was: bikeshedding bzr (or similar) :]
2008-03-13 15:30 ` Karl Fogel
2008-03-13 15:58 ` dhruva
2008-03-13 16:50 ` Jason Earl
@ 2008-03-13 20:18 ` Stephen J. Turnbull
2 siblings, 0 replies; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-13 20:18 UTC (permalink / raw)
To: Karl Fogel; +Cc: Jason Earl, emacs-devel
[[ As long as I'm here dept: Jason, you have my admiration, thanks,
and congratulations for following up on that: I have not yet had the
patience to follow through on a cvsps conversion, though I've tried
several times! ]]
Wow, among all the bikeshedding[1][2], a real question that matters.
Karl Fogel writes:
> Karl Fogel <kfogel@red-bean.com> writes:
> > 1) If we commit to ("push to", whatever the appropriate term is)
Darcs's command set is the best terminology to use here, I think.
You *record* a changeset locally.
You *push* a changeset to make it public.
People are going to call both "commits", of course, but the record
vs. push terminology is nonetheless unambiguous and reasonably
intuitive. I think it will grow on people if we just start using it.
Footnotes:
[1] Thien-Thi's question about maintaining personal gateways among
VCSes is also an important question. I use tailor myself for over a
year now; it has some problems, but it overall works well.
[2] Of course efficiency will matter, but *not yet*, for heaven's
sake! "Premature optimization is the root of all evil in programming"!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:43 ` Andreas Schwab
2008-03-13 11:55 ` David Kastrup
@ 2008-03-13 20:27 ` Eli Zaretskii
2008-03-14 10:23 ` Andreas Schwab
2008-03-14 3:56 ` Forest Bond
` (3 subsequent siblings)
5 siblings, 1 reply; 236+ messages in thread
From: Eli Zaretskii @ 2008-03-13 20:27 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, jearl, emacs-devel
> From: Andreas Schwab <schwab@suse.de>
> Date: Thu, 13 Mar 2008 12:43:42 +0100
> Cc: bazaar@lists.canonical.com, emacs-devel@gnu.org
>
> Even cvs log is instantaneous in comparison,
How do you mean ``instantaneous''? For me, it takes 10 seconds to
start displaying the log.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 9:58 ` Andreas Schwab
@ 2008-03-13 22:13 ` Jonathan Lange
2008-03-14 10:27 ` Andreas Schwab
0 siblings, 1 reply; 236+ messages in thread
From: Jonathan Lange @ 2008-03-13 22:13 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Karl Fogel, Jason Earl, emacs-devel
On Thu, Mar 13, 2008 at 8:58 PM, Andreas Schwab <schwab@suse.de> wrote:
> "Jonathan Lange" <jml@mumak.net> writes:
>
>
> > Actually, it's probably a good idea to do make a shared repository
> > called 'emacs-bzr' and use the original clone command inside that. So,
> >
> > bzr init-repo emacs-bzr
> > cd emacs-bzr
> > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
> >
> > That way, Bazaar will share revisions between branches of Emacs,
> > making it faster to clone other branches.
>
> Can you do that sharing also between different directories, that is the
> equivalent of git clone --reference?
>
I'm not exactly sure what you mean, since I don't know much about git.
I'll tell you what I know, instead.
In that example, any branches beneath the 'emacs-bzr' will share the
repository in 'emacs-bzr'. In Bazaar, branches almost always have
their own directory.
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 8:04 ` dhruva
2008-03-13 9:04 ` Thien-Thi Nguyen
@ 2008-03-13 23:46 ` Jonathan Lange
2008-03-14 2:52 ` dhruva
` (2 more replies)
1 sibling, 3 replies; 236+ messages in thread
From: Jonathan Lange @ 2008-03-13 23:46 UTC (permalink / raw)
To: dhruva; +Cc: Jason Earl, Martin Pool, emacs-devel
On Thu, Mar 13, 2008 at 7:04 PM, dhruva <dhruvakm@gmail.com> wrote:
> Hi,
> I got bzr setup and running on my M$-XP box. I got the bzr repo of
> emacs (by downloading the emacs.tar.gz) and updated it to the latest.
> I wanted to make sure the recent changesets are pulled in. I typed
> "bzr log -l 10". It took ~24 seconds (elapsed time from perfmon)
> consistently. Whereas Mercurial (hg log -l 10) on the trunk to 2
> seconds (and the mercurial repo is on a CIFS mounted drive while bzr
> repo was on local disk). GIT was fastest though even on a CIFS mounted
> system.
>
I was a bit curious about this so I asked my friendly neighbourhood
Bazaar hacker (CCd). He tells me that comparing 'bzr log' to 'hg log'
is like comparing apples with ... umm, apple trees. Bazaar's log
displays all merges and thus has to do calculations on the whole
ancestry graph. Mercurial's log just displays the mainline history.
'bzr log --line' is a better comparison.
Unfortunately, 'bzr log --line' is nowhere near as fast as it could
be. We did a quick test and saw that 'log --line -l 10' takes about
half the time as 'log -l 10' which is still too slow. It's still doing
too much work with the whole graph.
We whipped up a quick hack and got it doing the same thing in about
0.25 seconds, which is getting close.
> IMHO, the performance aspects must be considered seriously.
>
Definitely. I hate waiting for anything, computers most of all. I'll
hassle Martin and try to get this fixed. Alternatively, the Bazaar
project welcomes patches with open arms. :)
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:30 ` Jonathan Lange
@ 2008-03-14 1:11 ` Dan Nicolaescu
2008-03-14 1:51 ` Jason Earl
0 siblings, 1 reply; 236+ messages in thread
From: Dan Nicolaescu @ 2008-03-14 1:11 UTC (permalink / raw)
To: Jonathan Lange; +Cc: Karl Fogel, Jason Earl, emacs-devel
"Jonathan Lange" <jml@mumak.net> writes:
> On Thu, Mar 13, 2008 at 3:15 PM, Jonathan Lange <jml@mumak.net> wrote:
> >
> > On Thu, Mar 13, 2008 at 3:09 PM, Karl Fogel <kfogel@red-bean.com> wrote:
> > > Jason Earl <jearl@xmission.com> writes:
> > >
> > > > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
> > >
> > > By the way, strongly suggest a dest name after that:
> > >
> > > bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
> > >
> > > or something. Probably no one wants their local clone directory to be
> > > named "trunk" :-).
> > >
> >
> > Actually, it's probably a good idea to do make a shared repository
> > called 'emacs-bzr' and use the original clone command inside that. So,
> >
> > bzr init-repo emacs-bzr
> > cd emacs-bzr
> >
> > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
> >
> > That way, Bazaar will share revisions between branches of Emacs,
> > making it faster to clone other branches.
> >
>
> Which reminds me. An even better way to do the initial download is this:
>
> # Get the tarball
> $ wget http://bzr.notengoamigos.org/emacs.tar.gz
> $ tar xzf emacs.tar.gz
>
> # Make a repo
> $ bzr init-repo emacs-bzr
>
> # Seed it with the downloaded branch
> $ cd emacs-bzr
> $ bzr branch ../emacs trunk
^^^^^^^^^
Is this actually ../emacs/trunk ?
(Could you please update the website with these instructions? A good
place would be after the place where you talk about downloading the
.tar.gz file, they are very useful)
BTW, how fast is "bzr annotate" supposed to be?
time bzr annotate vc.el >& /dev/null
133.673u 2.392s 2:23.78 94.6% 0+0k 39864+16io 1pf+0w
The similar command for Emacs CVS HEAD:
time cvs annotate vc.el >& /dev/null
0.250u 0.064s 0:03.22 9.6% 0+0k 0+0io 0pf+0w
Thanks a lot for doing all this!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 1:11 ` Dan Nicolaescu
@ 2008-03-14 1:51 ` Jason Earl
2008-03-14 5:10 ` Jonathan Lange
0 siblings, 1 reply; 236+ messages in thread
From: Jason Earl @ 2008-03-14 1:51 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: Jonathan Lange, Karl Fogel, emacs-devel
Dan Nicolaescu <dann@ics.uci.edu> writes:
> "Jonathan Lange" <jml@mumak.net> writes:
>
> > On Thu, Mar 13, 2008 at 3:15 PM, Jonathan Lange <jml@mumak.net> wrote:
> > >
> > > On Thu, Mar 13, 2008 at 3:09 PM, Karl Fogel <kfogel@red-bean.com> wrote:
> > > > Jason Earl <jearl@xmission.com> writes:
> > > >
> > > > > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
> > > >
> > > > By the way, strongly suggest a dest name after that:
> > > >
> > > > bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
> > > >
> > > > or something. Probably no one wants their local clone directory to be
> > > > named "trunk" :-).
> > > >
> > >
> > > Actually, it's probably a good idea to do make a shared repository
> > > called 'emacs-bzr' and use the original clone command inside that. So,
> > >
> > > bzr init-repo emacs-bzr
> > > cd emacs-bzr
> > >
> > > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
> > >
> > > That way, Bazaar will share revisions between branches of Emacs,
> > > making it faster to clone other branches.
> > >
> >
> > Which reminds me. An even better way to do the initial download is this:
> >
> > # Get the tarball
> > $ wget http://bzr.notengoamigos.org/emacs.tar.gz
> > $ tar xzf emacs.tar.gz
> >
> > # Make a repo
> > $ bzr init-repo emacs-bzr
> >
> > # Seed it with the downloaded branch
> > $ cd emacs-bzr
> > $ bzr branch ../emacs trunk
> ^^^^^^^^^
> Is this actually ../emacs/trunk ?
No, Jonathan didn't realize that the tarball already contains a shared
repository. There is no need to create a repository for yourself if you
download the tarball.
> (Could you please update the website with these instructions? A good
> place would be after the place where you talk about downloading the
> .tar.gz file, they are very useful)
The website is as it stands is correct.
> BTW, how fast is "bzr annotate" supposed to be?
>
> time bzr annotate vc.el >& /dev/null
> 133.673u 2.392s 2:23.78 94.6% 0+0k 39864+16io 1pf+0w
>
> The similar command for Emacs CVS HEAD:
> time cvs annotate vc.el >& /dev/null
> 0.250u 0.064s 0:03.22 9.6% 0+0k 0+0io 0pf+0w
>
> Thanks a lot for doing all this!
That's about how long it took on my machine as well.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 23:46 ` Jonathan Lange
@ 2008-03-14 2:52 ` dhruva
2008-03-14 3:00 ` Jason Earl
2008-03-14 3:03 ` Martin Pool
2008-03-14 10:30 ` Andreas Schwab
2008-03-14 15:02 ` Giorgos Keramidas
2 siblings, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-14 2:52 UTC (permalink / raw)
To: Jonathan Lange; +Cc: Jason Earl, Martin Pool, emacs-devel
Hi,
On Fri, Mar 14, 2008 at 5:16 AM, Jonathan Lange <jml@mumak.net> wrote:
> Definitely. I hate waiting for anything, computers most of all. I'll
> hassle Martin and try to get this fixed. Alternatively, the Bazaar
> project welcomes patches with open arms. :)
For starters, could anyone please suggest if there is some magic flag
to profile the bzr code? If I can get the time spent in each function
(PYTHON), we would be able to track the real hot spots. I am open to
help in debugging with my current limited knowledge of bzr internals.
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 2:52 ` dhruva
@ 2008-03-14 3:00 ` Jason Earl
2008-03-14 3:03 ` Martin Pool
1 sibling, 0 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-14 3:00 UTC (permalink / raw)
To: dhruva; +Cc: Jonathan Lange, Martin Pool, emacs-devel
dhruva <dhruvakm@gmail.com> writes:
> Hi,
>
>
> On Fri, Mar 14, 2008 at 5:16 AM, Jonathan Lange <jml@mumak.net> wrote:
>> Definitely. I hate waiting for anything, computers most of all. I'll
>> hassle Martin and try to get this fixed. Alternatively, the Bazaar
>> project welcomes patches with open arms. :)
>
> For starters, could anyone please suggest if there is some magic flag
> to profile the bzr code? If I can get the time spent in each function
> (PYTHON), we would be able to track the real hot spots. I am open to
> help in debugging with my current limited knowledge of bzr internals.
>
> -dhruva
I can profile by bzr with hotshot using:
$ bzr log --profile
I haven't tried it but apparently:
$ bzr log --lsprof
does something as well.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 2:52 ` dhruva
2008-03-14 3:00 ` Jason Earl
@ 2008-03-14 3:03 ` Martin Pool
2008-03-14 5:36 ` Stephen J. Turnbull
1 sibling, 1 reply; 236+ messages in thread
From: Martin Pool @ 2008-03-14 3:03 UTC (permalink / raw)
To: dhruva; +Cc: Jonathan Lange, Jason Earl, emacs-devel
On 14/03/2008, dhruva <dhruvakm@gmail.com> wrote:
> On Fri, Mar 14, 2008 at 5:16 AM, Jonathan Lange <jml@mumak.net> wrote:
> > Definitely. I hate waiting for anything, computers most of all. I'll
> > hassle Martin and try to get this fixed. Alternatively, the Bazaar
> > project welcomes patches with open arms. :)
>
> For starters, could anyone please suggest if there is some magic flag
> to profile the bzr code? If I can get the time spent in each function
> (PYTHON), we would be able to track the real hot spots. I am open to
> help in debugging with my current limited knowledge of bzr internals.
That would be great, see
http://doc.bazaar-vcs.org/bzr.dev/developers/profiling.html
and
http://doc.bazaar-vcs.org/bzr.dev/en/developer-guide/HACKING.html
I believe the main problem is that we are processing the whole graph
to work out which revisions merged which others. (which hg and git do
not do, iiuc.) For even quite active trees this is good, but emacs
has a lot of history.
In this case you probably just want the last ten direct commits, bzr
log --line -l10. mwh posted a patch to improve this and there is some
more that can be done.
--
Martin
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:43 ` Andreas Schwab
2008-03-13 11:55 ` David Kastrup
2008-03-13 20:27 ` Eli Zaretskii
@ 2008-03-14 3:56 ` Forest Bond
2008-03-14 10:32 ` Andreas Schwab
2008-03-14 4:52 ` Jonathan Lange
` (2 subsequent siblings)
5 siblings, 1 reply; 236+ messages in thread
From: Forest Bond @ 2008-03-14 3:56 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 551 bytes --]
Hi,
On Thu, Mar 13, 2008 at 12:43:42PM +0100, Andreas Schwab wrote:
> My first impression is that bzr is slow, so slow that it is completely
> unusable. How can it come that a simple bzr log takes more than a
> minute to even start? Even cvs log is instantaneous in comparison,
> although it has to request the log from the server.
You'll want to make sure you are using at least version 0.92; preferably, use
something 1.0 or later. Performance prior to 0.92 was not great.
-Forest
--
Forest Bond
http://www.alittletooquiet.net
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:43 ` Andreas Schwab
` (2 preceding siblings ...)
2008-03-14 3:56 ` Forest Bond
@ 2008-03-14 4:52 ` Jonathan Lange
2008-03-14 6:21 ` Dan Nicolaescu
` (2 more replies)
2008-03-14 11:30 ` Matt Nordhoff
2008-03-29 1:00 ` Xavier Maillard
5 siblings, 3 replies; 236+ messages in thread
From: Jonathan Lange @ 2008-03-14 4:52 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, emacs-devel
On Thu, Mar 13, 2008 at 10:43 PM, Andreas Schwab <schwab@suse.de> wrote:
> My first impression is that bzr is slow, so slow that it is completely
> unusable. How can it come that a simple bzr log takes more than a
> minute to even start? Even cvs log is instantaneous in comparison,
> although it has to request the log from the server.
>
As I mentioned in an earlier post, 'bzr log' and 'cvs log' are doing
very different things. 'bzr log --line' is much closer to typical 'cvs
log' behaviour.
Also, there's now a patch for Bazaar to make 'bzr log --line' a lot
faster -- http://bundlebuggy.aaronbentley.com/request/%3C47D9E60A.6030203%40canonical.com%3E
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 1:51 ` Jason Earl
@ 2008-03-14 5:10 ` Jonathan Lange
0 siblings, 0 replies; 236+ messages in thread
From: Jonathan Lange @ 2008-03-14 5:10 UTC (permalink / raw)
To: Jason Earl; +Cc: Karl Fogel, Dan Nicolaescu, emacs-devel
On Fri, Mar 14, 2008 at 12:51 PM, Jason Earl <jearl@xmission.com> wrote:
>
> Dan Nicolaescu <dann@ics.uci.edu> writes:
> > BTW, how fast is "bzr annotate" supposed to be?
> >
> > time bzr annotate vc.el >& /dev/null
> > 133.673u 2.392s 2:23.78 94.6% 0+0k 39864+16io 1pf+0w
> >
> > The similar command for Emacs CVS HEAD:
> > time cvs annotate vc.el >& /dev/null
> > 0.250u 0.064s 0:03.22 9.6% 0+0k 0+0io 0pf+0w
> >
> > Thanks a lot for doing all this!
>
> That's about how long it took on my machine as well.
>
Bazaar recently made annotate slower while making a lot of other
operations much faster. I haven't been following it closely, but I
know that John Arbash Meinel has been working hard on bringing
annotate up to speed. Expect significant improvements soon.
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 3:03 ` Martin Pool
@ 2008-03-14 5:36 ` Stephen J. Turnbull
2008-03-14 7:03 ` Martin Pool
0 siblings, 1 reply; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-14 5:36 UTC (permalink / raw)
To: Martin Pool; +Cc: Jonathan Lange, Jason Earl, emacs-devel
Martin Pool writes:
> I believe the main problem is that we are processing the whole graph
> to work out which revisions merged which others.
What does this mean? That you can avoid pulling patches that cause
conflicts if they've already been applied? But that's not terribly
interesting in most logging or mass download applications.
While I quoted Hoare on the root of all evil elsewhere, and continue
to take that as my default position, these numbers are uncomfortable.
I don't care how cold the CPU cache is, I don't want an attempt to
access a non-existent local repo to take 10s. Nor should a
disk-to-disk copy of a 400MB directory tree take 23.5m. The partial
clone times are heartening, although it's hard to guess what they
mean in terms of throughput.
# Initial one-branch clone.
$ time bzr clone http://bzr.notengoamigos.org/emacs/trunk/ earl-bzr
Branched 87515 revision(s).
real 101m35.490s user 28m16.698s sys 2m7.827s
# Clone from a local standalone branch into a shared repo.
$ time bzr clone ../earl-bzr trunk
Branched 87515 revision(s).
real 23m27.626s user 13m57.869s sys 1m12.516s
# Command line typo on a local URL, bzr figures it out in 10s.
$ time bzr branch EMACS_22_BASE
bzr: ERROR: Not a branch: "/Users/steve/Software/Emacs/emacs-bzr/EMACS_22_BASE/".
real 0m10.183s user 0m0.457s sys 0m1.361s
# Command line typo on a remote URL, bzr figures it out in 3.5s.
$ time bzr clone http://bzr.notengoamigos.org/emacs/EMACS_22_BASE
bzr: ERROR: Not a branch: "http://bzr.notengoamigos.org/emacs/EMACS_22_BASE/".
real 0m3.427s user 0m0.499s sys 0m1.142s
# Command line typo on a remote URL, bzr figures it out in 2s.
$ time bzr clone http://bzr.notengoamigos.org/emacs/branch/EMACS_22_BASE
bzr: ERROR: Not a branch: "http://bzr.notengoamigos.org/emacs/branch/EMACS_22_BASE/".
real 0m1.777s user 0m0.480s sys 0m0.995s
# A partial clone into the shared repo.
$ time bzr clone http://bzr.notengoamigos.org/emacs/branches/EMACS_22_BASE
Branched 83329 revision(s).
real 4m47.853s user 2m20.361s sys 0m25.168s
# A second partial clone into the shared repo.
$ time bzr clone http://bzr.notengoamigos.org/emacs/branches/lexbind
Branched 48705 revision(s).
real 11m18.166s user 3m25.059s sys 0m33.614s
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 4:52 ` Jonathan Lange
@ 2008-03-14 6:21 ` Dan Nicolaescu
2008-03-14 6:33 ` Alexander Belchenko
2008-03-14 10:35 ` Andreas Schwab
2008-03-14 10:37 ` Andreas Schwab
2 siblings, 1 reply; 236+ messages in thread
From: Dan Nicolaescu @ 2008-03-14 6:21 UTC (permalink / raw)
To: Jonathan Lange; +Cc: Andreas Schwab, emacs-devel, bazaar
"Jonathan Lange" <jml@mumak.net> writes:
> On Thu, Mar 13, 2008 at 10:43 PM, Andreas Schwab <schwab@suse.de> wrote:
> > My first impression is that bzr is slow, so slow that it is completely
> > unusable. How can it come that a simple bzr log takes more than a
> > minute to even start? Even cvs log is instantaneous in comparison,
> > although it has to request the log from the server.
> >
>
> As I mentioned in an earlier post, 'bzr log' and 'cvs log' are doing
> very different things. 'bzr log --line' is much closer to typical 'cvs
> log' behaviour.
It is not that close, "cvs log" shows the whole change long for each
entry, not just a single line. For emacs we have very well written
change logs, and if you look at them, you actually want to see the
details.
Is there a fast alternative that shows the whole entry, not just a
single line?
Also, is bzr status expected to be fast?
bzr status FILENAME
takes 1.2 seconds on a slow machine and .4 seconds on a fast one. Both
numbers seem quite high.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 6:21 ` Dan Nicolaescu
@ 2008-03-14 6:33 ` Alexander Belchenko
2008-03-14 7:16 ` Dan Nicolaescu
0 siblings, 1 reply; 236+ messages in thread
From: Alexander Belchenko @ 2008-03-14 6:33 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: Andreas Schwab, bazaar, emacs-devel
Dan Nicolaescu пишет:
> "Jonathan Lange" <jml@mumak.net> writes:
>
> > On Thu, Mar 13, 2008 at 10:43 PM, Andreas Schwab <schwab@suse.de> wrote:
> > > My first impression is that bzr is slow, so slow that it is completely
> > > unusable. How can it come that a simple bzr log takes more than a
> > > minute to even start? Even cvs log is instantaneous in comparison,
> > > although it has to request the log from the server.
> > >
> >
> > As I mentioned in an earlier post, 'bzr log' and 'cvs log' are doing
> > very different things. 'bzr log --line' is much closer to typical 'cvs
> > log' behaviour.
>
> It is not that close, "cvs log" shows the whole change long for each
> entry, not just a single line. For emacs we have very well written
> change logs, and if you look at them, you actually want to see the
> details.
> Is there a fast alternative that shows the whole entry, not just a
> single line?
Try: bzr log --short
>
> Also, is bzr status expected to be fast?
>
> bzr status FILENAME
>
> takes 1.2 seconds on a slow machine and .4 seconds on a fast one. Both
> numbers seem quite high.
>
>
>
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 5:36 ` Stephen J. Turnbull
@ 2008-03-14 7:03 ` Martin Pool
2008-03-15 4:44 ` Stephen J. Turnbull
0 siblings, 1 reply; 236+ messages in thread
From: Martin Pool @ 2008-03-14 7:03 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: Jonathan Lange, Jason Earl, emacs-devel
On 14/03/2008, Stephen J. Turnbull <stephen@xemacs.org> wrote:
> Martin Pool writes:
>
> > I believe the main problem is that we are processing the whole graph
> > to work out which revisions merged which others.
>
> What does this mean? That you can avoid pulling patches that cause
> conflicts if they've already been applied? But that's not terribly
> interesting in most logging or mass download applications.
Bazaar shows revisions in a nested form like this:
a
b
c
d
e
f
..
This means that c and d were merged into this branch in revision b,
and were not previously present in the repository. This layout gives
a good overview of the history, in our opinion a much better one than
what you get from tools that just print one path through the graph or
that print the revisions in arbitrary linear order.
To calculate which revisions are newly merged is currently done by
examining the whole graph. We will do two things to speed it up:
faster loading of the graph from the repository, and caching some data
in the branch.
But possibly you don't want to know about merged in revisions, and
that can be done with bzr log --short or --line. These should be able
to do much less work, just walking down through the revision to print.
mwh posted a patch for this, and we can take it further.
> While I quoted Hoare on the root of all evil elsewhere, and continue
> to take that as my default position, these numbers are uncomfortable.
> I don't care how cold the CPU cache is, I don't want an attempt to
> access a non-existent local repo to take 10s. Nor should a
> disk-to-disk copy of a 400MB directory tree take 23.5m. The partial
> clone times are heartening, although it's hard to guess what they
> mean in terms of throughput.
I want to point out that bzr branch locally, not in a single
repository, is doing more than just copying all the files - it is
filtering out and verifying the data relevant to the particular branch
you're copying. If you just want to copy the data, use cp; if you
want a new branch without copying, use init-repo to create a common
repository directory above them.
That said, it would probably be useful to have an option which copies
the whole thing with no or fewer checks, and to speed up the way we do
copy it.
> # Initial one-branch clone.
> $ time bzr clone http://bzr.notengoamigos.org/emacs/trunk/ earl-bzr
> Branched 87515 revision(s).
>
> real 101m35.490s user 28m16.698s sys 2m7.827s
>
> # Clone from a local standalone branch into a shared repo.
> $ time bzr clone ../earl-bzr trunk
> Branched 87515 revision(s).
>
> real 23m27.626s user 13m57.869s sys 1m12.516s
>
> # Command line typo on a local URL, bzr figures it out in 10s.
> $ time bzr branch EMACS_22_BASE
> bzr: ERROR: Not a branch: "/Users/steve/Software/Emacs/emacs-bzr/EMACS_22_BASE/".
>
> real 0m10.183s user 0m0.457s sys 0m1.361s
Maybe you could send (perhaps just on the bzr list) a run of that with
"bzr --lsprof branch ...". It may be that the low cpu usage is caused
by many things being pushed out of ram by building the emacs working
tree in the previous command.
> # Command line typo on a remote URL, bzr figures it out in 3.5s.
> $ time bzr clone http://bzr.notengoamigos.org/emacs/EMACS_22_BASE
> bzr: ERROR: Not a branch: "http://bzr.notengoamigos.org/emacs/EMACS_22_BASE/".
>
> real 0m3.427s user 0m0.499s sys 0m1.142s
For me this remote urls takes about .6s; I may be closer to that
server. At any rate it is only sending one http request which is the
least that can be reasonably expected. :)
--
Martin
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 6:33 ` Alexander Belchenko
@ 2008-03-14 7:16 ` Dan Nicolaescu
2008-03-14 9:18 ` Juanma Barranquero
0 siblings, 1 reply; 236+ messages in thread
From: Dan Nicolaescu @ 2008-03-14 7:16 UTC (permalink / raw)
To: Alexander Belchenko; +Cc: Jonathan Lange, Andreas Schwab, bazaar, emacs-devel
Alexander Belchenko <bialix@ukr.net> writes:
> Dan Nicolaescu пишет:
> > "Jonathan Lange" <jml@mumak.net> writes:
> >
> > > On Thu, Mar 13, 2008 at 10:43 PM, Andreas Schwab <schwab@suse.de> wrote:
> > > > My first impression is that bzr is slow, so slow that it is completely
> > > > unusable. How can it come that a simple bzr log takes more than a
> > > > minute to even start? Even cvs log is instantaneous in comparison,
> > > > although it has to request the log from the server.
> > > >
> > > > As I mentioned in an earlier post, 'bzr log' and 'cvs log'
> > are doing
> > > very different things. 'bzr log --line' is much closer to typical 'cvs
> > > log' behaviour.
> >
> > It is not that close, "cvs log" shows the whole change long for each
> > entry, not just a single line. For emacs we have very well written
> > change logs, and if you look at them, you actually want to see the
> > details. Is there a fast alternative that shows the whole entry, not
> > just a
> > single line?
>
> Try: bzr log --short
The content is OK, but it takes 30 seconds to run
bzr log --limit=30 --short FILENAME
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:40 ` Eli Zaretskii
@ 2008-03-14 8:23 ` John Arbash Meinel
2008-03-14 13:32 ` Andreas Schwab
` (2 more replies)
2008-03-14 12:56 ` dhruva
` (4 subsequent siblings)
5 siblings, 3 replies; 236+ messages in thread
From: John Arbash Meinel @ 2008-03-14 8:23 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: schwab, dak, emacs-devel, Matthieu Moy, bazaar
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Eli Zaretskii wrote:
>> From: Matthieu Moy <Matthieu.Moy@imag.fr>
>> Date: Fri, 14 Mar 2008 10:58:13 +0100
>> Cc: Andreas Schwab <schwab@suse.de>, emacs-devel@gnu.org,
>> bazaar@lists.canonical.com
>>
>>> Andreas Schwab <schwab@suse.de> writes:
>>>
>>>> My first impression is that bzr is slow, so slow that it is completely
>>>> unusable. How can it come that a simple bzr log takes more than a
>>>> minute to even start? Even cvs log is instantaneous in comparison,
>>>> although it has to request the log from the server.
>> [...]
>> As opposed to that, bzr has to get a global view of history at least
>> to get the revision numbers (there was some plans caching this
>> information, I don't know what's the status).
>>
>> That said, the time for bzr log to start should clearly not be _that_
>> long.
>
> Incidentally, why are we concentrating on "bzr log"? is that a
> frequent operation? With CVS, I find myself doing "cvs log" only once
> in a few months, when I'm looking for a change corresponding to some
> ChangeLog entry.
>
> Aren't "push" and "pull" much more important, as far as speed is
> concerned, for everyday work? Also the equivalent of "cvs diff", I
> think. Those are the ops I use much more frequently than "log" and
> "annotate".
I think it is because 'bzr log' is surprisingly slow when compared to
other systems, while the other commands are not.
The biggest reason 'bzr log' is slow is because we spend some time
analyzing the ancestry to give a "pretty" view, while git/hg do not.
Specifically, when you do "bzr log" we traverse the ancestry to figure
out when revisions were merged, etc.
I believe plain "git log" just starts outputting the revisions as it
encounters them, and "hg log" also outputs them as they are stored. In
the case of "hg" that means that the order of operations you did to
create the branch will change the order you see them displayed. So if
you and someone else do 2 commits and then you merge them, and they pull
you. At that point "hg log" gives different results, even though both
branches are "the same".
For example:
hg init A
cd A
echo foo > foo
hg add
hg commit -m 'init'
cd ..
hg clone A B
cd A
echo "A1" >> foo
hg commit -m "A1"
echo "A2" >> foo
hg commit -m "A2"
cd ../B
echo "B1" > bar
hg add
hg commit -m "B1"
echo "B2" >> bar
hg commit -m "B2"
hg pull ../A
hg merge
hg commit -m "Merged"
cd ../A
hg pull -u ../B
At that point doing:
cd A
hg log
gives me: (paraphrased for clarity)
changeset: 5:04157da570b3
summary: Merged
changeset: 4:e44ea38fbbb9
summary: B2
changeset: 3:d2df37f438ac
summary: B1
changeset: 2:111f2448422b
summary: A2
changeset: 1:3a8ecee8c0bf
summary: A1
changeset: 0:5a118c651080
summary: init
versus
cd B
hg log
changeset: 5:04157da570b3
summary: Merged
changeset: 4:111f2448422b
summary: A2
changeset: 3:3a8ecee8c0bf
summary: A1
changeset: 2:e44ea38fbbb9
summary: B2
changeset: 1:d2df37f438ac
summary: B1
changeset: 0:5a118c651080
summary: init
The other thing is that these numbers are going to be permanently
different for the two branches. Which means that you can't refer to
"revno 4 in branch A". Because someone with an effective clone of your
"branch A" might have different revisions.
We are working hard to decrease the cost of this ancestry lookup. We
have a couple plans which will allow us to determine the revision
numbers without having to look at all of history. We'll still look at
more than 0 history, but if we can bound the amount of history we have
to look at, it should help.
(I believe 'git log' defaults to showing the log based on a local sort
by date. Neither one tries to figure out that A1 and A2 were merged into
tip, which is another step that 'bzr log' does.)
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH2jYBJdeBCYSNAAMRAh/KAJ9pK07hLXcDBZY+GqZUYWaemSXTTQCdE1U6
hO2ad7jQ6e4h+jqIgNsOYgM=
=CX95
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 13:07 ` Andrea Russo
@ 2008-03-14 9:16 ` Nicholas Allen
0 siblings, 0 replies; 236+ messages in thread
From: Nicholas Allen @ 2008-03-14 9:16 UTC (permalink / raw)
To: Andrea Russo; +Cc: bazaar, emacs-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
| bzr clone http://bzr.notengoamigos.org/emacs/trunk/ emacs-bzr
|
| I ran it for 8 hours over a 2Mbit ADSL line then got bored (because it
| was crunching my hard disk) a killed it. The bzr status bar was around
| 70%.
This would probably be a lot faster over the smart server I guess -
hopefully comparable to git as the smart server should compress and send
the revisions in one go.
But I think this is a great example of where the idea of shallow
branches would be great. You would get your working copy (where you
could commit, status, merge, log, annotate etc) almost immediately and
Bazaar would download the remaining history in the background without
getting in your way. I hope the Bazaar team can implement something like
this fairly quickly as I think it is a killer feature and would
eliminate most performance problems when branching (especially for large
projects like Emacs).
I must say I am very impressed with Bazaar's developers - it's amazing
what they have done already and how quickly they develop new features.
So if anyone could pull something like this off I think it would be them ;-)
Cheers,
Nick
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH2kKC1+i51gqqEGkRAjjrAKC39OZkEPfI0793TTpDK9p4QwdhBwCgoar1
kgS/JJE7NI7TTpV8vzcv43M=
=QOoV
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 7:16 ` Dan Nicolaescu
@ 2008-03-14 9:18 ` Juanma Barranquero
2008-03-14 10:08 ` Matthew D. Fuller
2008-03-19 16:31 ` Nicholas Allen
0 siblings, 2 replies; 236+ messages in thread
From: Juanma Barranquero @ 2008-03-14 9:18 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: Alexander Belchenko, emacs-devel, bazaar, Andreas Schwab
[-- Attachment #1: Type: text/plain, Size: 396 bytes --]
On Fri, Mar 14, 2008 at 8:16 AM, Dan Nicolaescu <dann@ics.uci.edu> wrote:
> The content is OK, but it takes 30 seconds to run
> bzr log --limit=30 --short FILENAME
On Windows XP (with prebuilt binary of 1.2.0), the command
bzr log --limit=30 --short lisp\ChangeLog
brought pagefile size up from ~500 MB (before running bazaar) to
>2.5GB (and I had to kill it). It is repeatable.
Juanma
[-- Attachment #2: bzr1.jpg --]
[-- Type: image/jpeg, Size: 48335 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:55 ` David Kastrup
@ 2008-03-14 9:58 ` Matthieu Moy
2008-03-14 10:42 ` Andreas Schwab
2008-03-14 12:40 ` Eli Zaretskii
0 siblings, 2 replies; 236+ messages in thread
From: Matthieu Moy @ 2008-03-14 9:58 UTC (permalink / raw)
To: David Kastrup; +Cc: Andreas Schwab, emacs-devel, bazaar
David Kastrup <dak@gnu.org> writes:
> Andreas Schwab <schwab@suse.de> writes:
>
>> My first impression is that bzr is slow, so slow that it is completely
>> unusable. How can it come that a simple bzr log takes more than a
>> minute to even start? Even cvs log is instantaneous in comparison,
>> although it has to request the log from the server.
>
> I find this surprising: "git log" is pretty much instantaneous, and git
> recalculates a code piece's history in the process (renaming and copying
> is not tracked by git, but calculated on the fly when you ask for log
> output).
Actually the full "git log" can be long, but in practice, "git log"
seems _always_ instantaneous, since:
* git log pipes itself to less by default, so you get something stable
in your terminal as soon as "git log" has outputed a few lines.
* git log can show the output as it finds it. It can show the output
for HEAD immediately, then the ancestors of HEAD, then the
grandparents, ...
As opposed to that, bzr has to get a global view of history at least
to get the revision numbers (there was some plans caching this
information, I don't know what's the status).
That said, the time for bzr log to start should clearly not be _that_
long. I suspect it's done on a light checkout (therefore needing
network access), which git can't do at all for example.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 9:18 ` Juanma Barranquero
@ 2008-03-14 10:08 ` Matthew D. Fuller
2008-03-14 10:14 ` Juanma Barranquero
2008-03-19 16:31 ` Nicholas Allen
1 sibling, 1 reply; 236+ messages in thread
From: Matthew D. Fuller @ 2008-03-14 10:08 UTC (permalink / raw)
To: Juanma Barranquero
Cc: Alexander Belchenko, bazaar, Dan Nicolaescu, Andreas Schwab,
emacs-devel
On Fri, Mar 14, 2008 at 10:18:23AM +0100 I heard the voice of
Juanma Barranquero, and lo! it spake thus:
> On Fri, Mar 14, 2008 at 8:16 AM, Dan Nicolaescu <dann@ics.uci.edu> wrote:
>
> > The content is OK, but it takes 30 seconds to run
> > bzr log --limit=30 --short FILENAME
>
> On Windows XP (with prebuilt binary of 1.2.0), the command
>
> bzr log --limit=30 --short lisp\ChangeLog
>
> brought pagefile size up from ~500 MB (before running bazaar) to
> >2.5GB (and I had to kill it). It is repeatable.
Worth a note is that "bzr log $FILE" is currently _much_ slower and
heavier on memory than "bzr log" (unrestricted).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 10:08 ` Matthew D. Fuller
@ 2008-03-14 10:14 ` Juanma Barranquero
0 siblings, 0 replies; 236+ messages in thread
From: Juanma Barranquero @ 2008-03-14 10:14 UTC (permalink / raw)
To: Matthew D. Fuller
Cc: Alexander Belchenko, bazaar, Dan Nicolaescu, Andreas Schwab,
emacs-devel
On Fri, Mar 14, 2008 at 11:08 AM, Matthew D. Fuller
<fullermd@over-yonder.net> wrote:
> Worth a note is that "bzr log $FILE" is currently _much_ slower and
> heavier on memory than "bzr log" (unrestricted).
Yes. "bzr log" works fine.
Anyway, I'm not complaining, just reporting.
Juanma
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 20:27 ` Eli Zaretskii
@ 2008-03-14 10:23 ` Andreas Schwab
0 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 10:23 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: bazaar, emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
>> From: Andreas Schwab <schwab@suse.de>
>> Date: Thu, 13 Mar 2008 12:43:42 +0100
>> Cc: bazaar@lists.canonical.com, emacs-devel@gnu.org
>>
>> Even cvs log is instantaneous in comparison,
>
> How do you mean ``instantaneous''? For me, it takes 10 seconds to
> start displaying the log.
Which is ``instantaneous'' compared to the more than 60 seconds for bzr
log.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 22:13 ` Jonathan Lange
@ 2008-03-14 10:27 ` Andreas Schwab
2008-03-14 10:36 ` David Kastrup
0 siblings, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 10:27 UTC (permalink / raw)
To: Jonathan Lange; +Cc: Karl Fogel, Jason Earl, emacs-devel
"Jonathan Lange" <jml@mumak.net> writes:
> On Thu, Mar 13, 2008 at 8:58 PM, Andreas Schwab <schwab@suse.de> wrote:
>> "Jonathan Lange" <jml@mumak.net> writes:
>>
>>
>> > Actually, it's probably a good idea to do make a shared repository
>> > called 'emacs-bzr' and use the original clone command inside that. So,
>> >
>> > bzr init-repo emacs-bzr
>> > cd emacs-bzr
>> > bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>> >
>> > That way, Bazaar will share revisions between branches of Emacs,
>> > making it faster to clone other branches.
>>
>> Can you do that sharing also between different directories, that is the
>> equivalent of git clone --reference?
>>
>
> I'm not exactly sure what you mean, since I don't know much about git.
> I'll tell you what I know, instead.
You can tell git to borrow objects from another cloned repository
(similar to a symbolic link), and this other repository can be located
anywhere in the filesystem. AFAICS, for bzr to be able to share commits
both clones need to be located under a common, prepared directory, which
would not fit into my current way to handle repositories.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 23:46 ` Jonathan Lange
2008-03-14 2:52 ` dhruva
@ 2008-03-14 10:30 ` Andreas Schwab
2008-03-14 15:02 ` Giorgos Keramidas
2 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 10:30 UTC (permalink / raw)
To: Jonathan Lange; +Cc: Jason Earl, Martin Pool, emacs-devel
"Jonathan Lange" <jml@mumak.net> writes:
> I was a bit curious about this so I asked my friendly neighbourhood
> Bazaar hacker (CCd). He tells me that comparing 'bzr log' to 'hg log'
> is like comparing apples with ... umm, apple trees. Bazaar's log
> displays all merges and thus has to do calculations on the whole
> ancestry graph.
As does git log, yet it is much faster. Note that the bzr mirror of the
Emacs repo does not contain any merges.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 3:56 ` Forest Bond
@ 2008-03-14 10:32 ` Andreas Schwab
2008-03-14 11:28 ` Thomas Lord
0 siblings, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 10:32 UTC (permalink / raw)
To: Forest Bond; +Cc: bazaar, emacs-devel
Forest Bond <forest@alittletooquiet.net> writes:
> Hi,
>
> On Thu, Mar 13, 2008 at 12:43:42PM +0100, Andreas Schwab wrote:
>> My first impression is that bzr is slow, so slow that it is completely
>> unusable. How can it come that a simple bzr log takes more than a
>> minute to even start? Even cvs log is instantaneous in comparison,
>> although it has to request the log from the server.
>
> You'll want to make sure you are using at least version 0.92;
An older version would not be able to use the repo at all.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 4:52 ` Jonathan Lange
2008-03-14 6:21 ` Dan Nicolaescu
@ 2008-03-14 10:35 ` Andreas Schwab
2008-03-14 10:37 ` Andreas Schwab
2 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 10:35 UTC (permalink / raw)
To: Jonathan Lange; +Cc: bazaar, emacs-devel
"Jonathan Lange" <jml@mumak.net> writes:
> As I mentioned in an earlier post, 'bzr log' and 'cvs log' are doing
> very different things. 'bzr log --line' is much closer to typical 'cvs
> log' behaviour.
That does not make any difference, still taking more than a minute to
start.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 10:27 ` Andreas Schwab
@ 2008-03-14 10:36 ` David Kastrup
0 siblings, 0 replies; 236+ messages in thread
From: David Kastrup @ 2008-03-14 10:36 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Jonathan Lange, Karl Fogel, Jason Earl, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> "Jonathan Lange" <jml@mumak.net> writes:
>
>> On Thu, Mar 13, 2008 at 8:58 PM, Andreas Schwab <schwab@suse.de> wrote:
>>>
>>> Can you do that sharing also between different directories, that is
>>> the equivalent of git clone --reference?
>>>
>>
>> I'm not exactly sure what you mean, since I don't know much about
>> git. I'll tell you what I know, instead.
>
> You can tell git to borrow objects from another cloned repository
> (similar to a symbolic link), and this other repository can be located
> anywhere in the filesystem. AFAICS, for bzr to be able to share
> commits both clones need to be located under a common, prepared
> directory, which would not fit into my current way to handle
> repositories.
"share commits" is somewhat misleading: clone --reference does not
actually share any structure between the repositories: they can be
completely unrelated. What it does is, loosely speaking, to use one
repository as a compression dictionary for the other repository.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 4:52 ` Jonathan Lange
2008-03-14 6:21 ` Dan Nicolaescu
2008-03-14 10:35 ` Andreas Schwab
@ 2008-03-14 10:37 ` Andreas Schwab
2 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 10:37 UTC (permalink / raw)
To: Jonathan Lange; +Cc: bazaar, emacs-devel
"Jonathan Lange" <jml@mumak.net> writes:
> Also, there's now a patch for Bazaar to make 'bzr log --line' a lot
> faster -- http://bundlebuggy.aaronbentley.com/request/%3C47D9E60A.6030203%40canonical.com%3E
Will it be as fast as git log --pretty=oneline?
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 9:58 ` Matthieu Moy
@ 2008-03-14 10:42 ` Andreas Schwab
2008-03-14 12:24 ` Matthieu Moy
[not found] ` <8562053f49b38b1584b86e1e4d1ec6e6, vpqbq5htrwx.fsf@bauges.imag.fr>
2008-03-14 12:40 ` Eli Zaretskii
1 sibling, 2 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 10:42 UTC (permalink / raw)
To: Matthieu Moy; +Cc: bazaar, David Kastrup, emacs-devel
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
> That said, the time for bzr log to start should clearly not be _that_
> long. I suspect it's done on a light checkout (therefore needing
> network access), which git can't do at all for example.
There is definitely no network access involved, it is almost 100% CPU
time.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 10:32 ` Andreas Schwab
@ 2008-03-14 11:28 ` Thomas Lord
2008-03-14 22:23 ` Stephen J. Turnbull
0 siblings, 1 reply; 236+ messages in thread
From: Thomas Lord @ 2008-03-14 11:28 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Jason Earl, Forest Bond, emacs-devel
Andreas Schwab wrote:
> An older version would not be able to use the repo at all.
>
Perhaps that kind of consideration should be given some weight.
If "repo format" is not obviously pretty stable, how suitable
is it for an archival format?
Geeze, maybe Emacs *should* just use Arch.
-t
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:43 ` Andreas Schwab
` (3 preceding siblings ...)
2008-03-14 4:52 ` Jonathan Lange
@ 2008-03-14 11:30 ` Matt Nordhoff
2008-03-29 1:00 ` Xavier Maillard
5 siblings, 0 replies; 236+ messages in thread
From: Matt Nordhoff @ 2008-03-14 11:30 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, emacs-devel
Andreas Schwab wrote:
> My first impression is that bzr is slow, so slow that it is completely
> unusable. How can it come that a simple bzr log takes more than a
> minute to even start? Even cvs log is instantaneous in comparison,
> although it has to request the log from the server.
Yeah, the new pack disk format made many things faster, but it made
whole-history operations like "bzr log" slower, and the developers are
still working on that..
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 10:42 ` Andreas Schwab
@ 2008-03-14 12:24 ` Matthieu Moy
[not found] ` <8562053f49b38b1584b86e1e4d1ec6e6, vpqbq5htrwx.fsf@bauges.imag.fr>
1 sibling, 0 replies; 236+ messages in thread
From: Matthieu Moy @ 2008-03-14 12:24 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, David Kastrup, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> Matthieu Moy <Matthieu.Moy@imag.fr> writes:
>
>> That said, the time for bzr log to start should clearly not be _that_
>> long. I suspect it's done on a light checkout (therefore needing
>> network access), which git can't do at all for example.
>
> There is definitely no network access involved, it is almost 100% CPU
> time.
Yes, right. Just reproduced here (perhaps with a faster machine than
yours) :
$ time bzr log | head -1
------------------------------------------------------------
bzr log 21.17s user 0.28s system 99% cpu 21.578 total
head -1 0.00s user 0.00s system 0% cpu 21.523 total
$ bzr --version
Bazaar (bzr) 1.3.0.dev.0
[...]
$ bzr info
Standalone tree (format: pack-0.92)
[...]
While on the git repo for Emacs,
$ time git log | head -1
commit 04eb7b6c65c8ec7550afb9cf317f51a1470f947c
git log 0.00s user 0.00s system 64% cpu 0.012 total
head -1 0.00s user 0.00s system 34% cpu 0.012 total
Similarly, I tested a commit touching a single file (echo foo >>
README), it takes 17 seconds with bzr, and 0.08 seconds with git.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 9:58 ` Matthieu Moy
2008-03-14 10:42 ` Andreas Schwab
@ 2008-03-14 12:40 ` Eli Zaretskii
2008-03-14 8:23 ` John Arbash Meinel
` (5 more replies)
1 sibling, 6 replies; 236+ messages in thread
From: Eli Zaretskii @ 2008-03-14 12:40 UTC (permalink / raw)
To: Matthieu Moy; +Cc: schwab, bazaar, emacs-devel
> From: Matthieu Moy <Matthieu.Moy@imag.fr>
> Date: Fri, 14 Mar 2008 10:58:13 +0100
> Cc: Andreas Schwab <schwab@suse.de>, emacs-devel@gnu.org,
> bazaar@lists.canonical.com
>
> > Andreas Schwab <schwab@suse.de> writes:
> >
> >> My first impression is that bzr is slow, so slow that it is completely
> >> unusable. How can it come that a simple bzr log takes more than a
> >> minute to even start? Even cvs log is instantaneous in comparison,
> >> although it has to request the log from the server.
> [...]
> As opposed to that, bzr has to get a global view of history at least
> to get the revision numbers (there was some plans caching this
> information, I don't know what's the status).
>
> That said, the time for bzr log to start should clearly not be _that_
> long.
Incidentally, why are we concentrating on "bzr log"? is that a
frequent operation? With CVS, I find myself doing "cvs log" only once
in a few months, when I'm looking for a change corresponding to some
ChangeLog entry.
Aren't "push" and "pull" much more important, as far as speed is
concerned, for everyday work? Also the equivalent of "cvs diff", I
think. Those are the ops I use much more frequently than "log" and
"annotate".
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
[not found] ` <8562053f49b38b1584b86e1e4d1ec6e6, vpqbq5htrwx.fsf@bauges.imag.fr>
@ 2008-03-14 12:42 ` David Ingamells
2008-03-14 13:05 ` Andreas Schwab
0 siblings, 1 reply; 236+ messages in thread
From: David Ingamells @ 2008-03-14 12:42 UTC (permalink / raw)
To: Matthieu Moy; +Cc: Andreas Schwab, David Kastrup, emacs-devel, bazaar
Matthieu Moy wrote:
> Andreas Schwab <schwab@suse.de> writes:
>
>
>> Matthieu Moy <Matthieu.Moy@imag.fr> writes:
>>
>>
>>> That said, the time for bzr log to start should clearly not be _that_
>>> long. I suspect it's done on a light checkout (therefore needing
>>> network access), which git can't do at all for example.
>>>
>> There is definitely no network access involved, it is almost 100% CPU
>> time.
>>
>
> Yes, right. Just reproduced here (perhaps with a faster machine than
> yours) :
>
> $ time bzr log | head -1
> ------------------------------------------------------------
> bzr log 21.17s user 0.28s system 99% cpu 21.578 total
> head -1 0.00s user 0.00s system 0% cpu 21.523 total
> $ bzr --version
> Bazaar (bzr) 1.3.0.dev.0
> [...]
> $ bzr info
> Standalone tree (format: pack-0.92)
> [...]
>
> While on the git repo for Emacs,
>
> $ time git log | head -1
> commit 04eb7b6c65c8ec7550afb9cf317f51a1470f947c
> git log 0.00s user 0.00s system 64% cpu 0.012 total
> head -1 0.00s user 0.00s system 34% cpu 0.012 total
>
> Similarly, I tested a commit touching a single file (echo foo >>
> README), it takes 17 seconds with bzr, and 0.08 seconds with git.
>
>
A small note of "warning" regarding such timing comparisons. make sure
you are not comparing apples and oranges.
When we were choosing a new CMS tool I did a similar comparison between
mercurial and bazaar, which mercurial won easily until I discovered why:
mercurial first uses time stamps to check for potential updates - which
leads to lost updates if the file update happens within one second of
the checkout. bazaar is more thorough when checking for changes - this
costs time but is much safer.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:40 ` Eli Zaretskii
2008-03-14 8:23 ` John Arbash Meinel
@ 2008-03-14 12:56 ` dhruva
2008-03-14 13:10 ` Lennart Borgman (gmail)
` (2 more replies)
2008-03-14 13:03 ` Andreas Schwab
` (3 subsequent siblings)
5 siblings, 3 replies; 236+ messages in thread
From: dhruva @ 2008-03-14 12:56 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: schwab, emacs-devel, Matthieu Moy, bazaar
Hi,
On Fri, Mar 14, 2008 at 6:10 PM, Eli Zaretskii <eliz@gnu.org> wrote:
>
> Incidentally, why are we concentrating on "bzr log"? is that a
> frequent operation? With CVS, I find myself doing "cvs log" only once
> in a few months, when I'm looking for a change corresponding to some
> ChangeLog entry.
Since I did the original posting with 'bzr log', I will post my reason.
I have been using Git which supports multiple branches in the same
folder. At times, I just want to make sure if I have all the latest
changes pulled in. Ideally, a pull would have done its job, just that
I try to make sure. I do that with a 'git log -l 10'. Since there are
so many branches, at times I would like to know the activity and try
building the one which has the most recent modification.
I agree that it is not the most important feature but a required feature.
Having tried a bunch of SCM, I must say GIT way of supporting multiple
branches under the same folder along with its speed it a sure winner.
I was opposing GIT due to its non-availability on M$, it is history
now and the port they have is really good. The build is streamlined on
M$ too, I pull their changes regularly, build, install and use the
bleeding edge. It has not failed me so far.
If Mercurial had the ability to truly support multiple branches in
the same folder (with out requiring me to merge all branches before I
can pull - pull works only if there is a single tip/branch), I would
have preferred it mainly because it just needs PYTHON and nothing else
(GIT needs PERL and SHELL).
Speed wise, I find both GIT and Mercurial very close to each other.
GIT may be faster but not noticeable to human perceptions (well on
emacs repository I have tried). Here, I give GIT a thumbs up because
it has data for all branches and still the fastest. If mercurial
decides to support multiple branches under the same folder, I wonder
what impact it might have on the speed.
-dhruva
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:40 ` Eli Zaretskii
2008-03-14 8:23 ` John Arbash Meinel
2008-03-14 12:56 ` dhruva
@ 2008-03-14 13:03 ` Andreas Schwab
2008-03-14 14:24 ` Matthieu Moy
2008-03-14 18:04 ` Dan Nicolaescu
` (2 subsequent siblings)
5 siblings, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 13:03 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: bazaar, dak, Matthieu Moy, emacs-devel
Eli Zaretskii <eliz@gnu.org> writes:
> Incidentally, why are we concentrating on "bzr log"? is that a
> frequent operation?
IMHO it is. It is the main source of revision information. But it also
happend to be the first command that I tried after the clone.
> Aren't "push" and "pull" much more important, as far as speed is
> concerned, for everyday work?
Those are important, too, but I could not test them yet.
> Also the equivalent of "cvs diff", I think. Those are the ops I use
> much more frequently than "log" and "annotate".
Yes, "diff" is quite important as well. Unfortunately, bzr diff seems
to have the same performance problem.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:42 ` David Ingamells
@ 2008-03-14 13:05 ` Andreas Schwab
0 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 13:05 UTC (permalink / raw)
To: David Ingamells; +Cc: bazaar, David Kastrup, Matthieu Moy, emacs-devel
David Ingamells <david.ingamells@mapscape.eu> writes:
> When we were choosing a new CMS tool I did a similar comparison between
> mercurial and bazaar, which mercurial won easily until I discovered why:
> mercurial first uses time stamps to check for potential updates - which
> leads to lost updates if the file update happens within one second of the
> checkout. bazaar is more thorough when checking for changes - this costs
> time but is much safer.
But it shouldn't result in a 60 seconds delay.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:56 ` dhruva
@ 2008-03-14 13:10 ` Lennart Borgman (gmail)
2008-03-14 13:23 ` dhruva
` (3 more replies)
2008-03-14 22:26 ` Martin Geisler
2008-03-19 10:50 ` Sascha Wilde
2 siblings, 4 replies; 236+ messages in thread
From: Lennart Borgman (gmail) @ 2008-03-14 13:10 UTC (permalink / raw)
To: dhruva; +Cc: schwab, Eli Zaretskii, bazaar, Matthieu Moy, emacs-devel
> If Mercurial had the ability to truly support multiple branches in
> the same folder (with out requiring me to merge all branches before I
> can pull - pull works only if there is a single tip/branch), I would
> have preferred it mainly because it just needs PYTHON and nothing else
> (GIT needs PERL and SHELL).
How did they do that? It needs both perl and sh? Is there really any
perl programmer who writes code that way?
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:10 ` Lennart Borgman (gmail)
@ 2008-03-14 13:23 ` dhruva
2008-03-14 13:26 ` Andreas Schwab
2008-03-14 14:19 ` Matthieu Moy
` (2 subsequent siblings)
3 siblings, 1 reply; 236+ messages in thread
From: dhruva @ 2008-03-14 13:23 UTC (permalink / raw)
To: Lennart Borgman (gmail)
Cc: schwab, Eli Zaretskii, bazaar, Matthieu Moy, emacs-devel
Hi,
On Fri, Mar 14, 2008 at 6:40 PM, Lennart Borgman (gmail)
<lennart.borgman@gmail.com> wrote:
> > have preferred it mainly because it just needs PYTHON and nothing else
> > (GIT needs PERL and SHELL).
>
>
> How did they do that? It needs both perl and sh? Is there really any
> perl programmer who writes code that way?
>
PERL scripts in GIT 'bin' folder:
git-add--interactive
git-archimport
git-cvsexportcommit
git-cvsimport
git-cvsserver
git-instaweb
git-relink
git-remote
git-send-email
git-svn
SH scripts in GIT bin:
git-am
git-bisect
git-browse-help
git-checkout
git-citool
git-clone
git-filter-branch
git-gui
git-gui.tcl
git-instaweb
git-instaweb
git-lost-found
git-merge
git-merge-octopus
git-merge-one-file
git-merge-resolve
git-merge-stupid
git-mergetool
git-parse-remote
git-pull
git-quiltimport
git-rebase
git-rebase--interactive
git-repack
git-request-pull
git-sh-setup
git-stash
git-submodule
git-web--browse
gitk
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:23 ` dhruva
@ 2008-03-14 13:26 ` Andreas Schwab
0 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 13:26 UTC (permalink / raw)
To: dhruva
Cc: bazaar, Eli Zaretskii, Lennart Borgman (gmail), Matthieu Moy,
emacs-devel
dhruva <dhruvakm@gmail.com> writes:
> git-gui
> gitk
Those are actually tcl scripts.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 8:23 ` John Arbash Meinel
@ 2008-03-14 13:32 ` Andreas Schwab
2008-03-14 13:39 ` James Westby
2008-03-14 14:13 ` Matthieu Moy
2008-03-14 13:35 ` David Kastrup
2008-03-14 23:34 ` Stephen J. Turnbull
2 siblings, 2 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 13:32 UTC (permalink / raw)
To: John Arbash Meinel; +Cc: bazaar, Eli Zaretskii, dak, Matthieu Moy, emacs-devel
John Arbash Meinel <john@arbash-meinel.com> writes:
> The other thing is that these numbers are going to be permanently
> different for the two branches. Which means that you can't refer to
> "revno 4 in branch A". Because someone with an effective clone of your
> "branch A" might have different revisions.
With git revisions are globally unique. Pulling from a different
repository does not change revisions in any way.
> (I believe 'git log' defaults to showing the log based on a local sort
> by date. Neither one tries to figure out that A1 and A2 were merged into
> tip, which is another step that 'bzr log' does.)
I don't understand what "trying to figure out that ... were merged"
means. If there is a merge commit git just shows it as such.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 8:23 ` John Arbash Meinel
2008-03-14 13:32 ` Andreas Schwab
@ 2008-03-14 13:35 ` David Kastrup
2008-03-14 13:44 ` James Westby
2008-03-14 23:34 ` Stephen J. Turnbull
2 siblings, 1 reply; 236+ messages in thread
From: David Kastrup @ 2008-03-14 13:35 UTC (permalink / raw)
To: John Arbash Meinel
Cc: schwab, Eli Zaretskii, emacs-devel, Matthieu Moy, bazaar
John Arbash Meinel <john@arbash-meinel.com> writes:
> The biggest reason 'bzr log' is slow is because we spend some time
> analyzing the ancestry to give a "pretty" view, while git/hg do not.
git most certainly does.
> Specifically, when you do "bzr log" we traverse the ancestry to figure
> out when revisions were merged, etc.
What makes you think git doesn't?
> I believe plain "git log" just starts outputting the revisions as it
> encounters them, and "hg log" also outputs them as they are stored.
git has a large variety of options for selecting order and subset and
relation of what to output to the log.
It is still fast, even while doing rename/copying detection on the fly.
> (I believe 'git log' defaults to showing the log based on a local sort
> by date. Neither one tries to figure out that A1 and A2 were merged
> into tip, which is another step that 'bzr log' does.)
I suggest you actually check your beliefs against the actual program.
"The reason the other software is faster must be because it sucks in
comparison to ours." is a fallacy. git has been developed by a set of
kernel-savvy developers working on a large code base with a necessity
for high speed (Linus merges several hundred patches from different
repositories daily).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:32 ` Andreas Schwab
@ 2008-03-14 13:39 ` James Westby
2008-03-14 14:13 ` Matthieu Moy
1 sibling, 0 replies; 236+ messages in thread
From: James Westby @ 2008-03-14 13:39 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, dak, Matthieu Moy, emacs-devel, Eli Zaretskii
On Fri, 2008-03-14 at 14:32 +0100, Andreas Schwab wrote:
> John Arbash Meinel <john@arbash-meinel.com> writes:
>
> > The other thing is that these numbers are going to be permanently
> > different for the two branches. Which means that you can't refer to
> > "revno 4 in branch A". Because someone with an effective clone of your
> > "branch A" might have different revisions.
>
> With git revisions are globally unique. Pulling from a different
> repository does not change revisions in any way.
I think John intended to say
"Because someone with an effective clone of your "branch A" might
have different revision numbers."
and as git doesn't use revision numbers this doesn't really apply.
bzr's revisions are also globally unique and immutable. It's just
their numbering that may change.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:35 ` David Kastrup
@ 2008-03-14 13:44 ` James Westby
2008-03-14 13:59 ` David Kastrup
0 siblings, 1 reply; 236+ messages in thread
From: James Westby @ 2008-03-14 13:44 UTC (permalink / raw)
To: David Kastrup; +Cc: bazaar, Matthieu Moy, schwab, emacs-devel, Eli Zaretskii
On Fri, 2008-03-14 at 14:35 +0100, David Kastrup wrote:
> John Arbash Meinel <john@arbash-meinel.com> writes:
>
> > The biggest reason 'bzr log' is slow is because we spend some time
> > analyzing the ancestry to give a "pretty" view, while git/hg do not.
>
> git most certainly does.
But it's analysis is different. It is doing something that has fewer
constraints on the output that bzr log.
You still end up with a list of revisions, but the ordering on bzr's
is more complex to calculate.
>
> > Specifically, when you do "bzr log" we traverse the ancestry to figure
> > out when revisions were merged, etc.
>
> What makes you think git doesn't?
>
I don't think John articulated his point as he would have liked there.
> > I believe plain "git log" just starts outputting the revisions as it
> > encounters them, and "hg log" also outputs them as they are stored.
>
> git has a large variety of options for selecting order and subset and
> relation of what to output to the log.
>
However it doesn't have one that outputs them in the same order as bzr.
> It is still fast, even while doing rename/copying detection on the fly.
>
It is fast, no-one is disagreeing with that.
> > (I believe 'git log' defaults to showing the log based on a local sort
> > by date. Neither one tries to figure out that A1 and A2 were merged
> > into tip, which is another step that 'bzr log' does.)
>
> I suggest you actually check your beliefs against the actual program.
> "The reason the other software is faster must be because it sucks in
> comparison to ours." is a fallacy. git has been developed by a set of
> kernel-savvy developers working on a large code base with a necessity
> for high speed (Linus merges several hundred patches from different
> repositories daily).
>
I'm sure that John did not intend to say that git "sucks", and I firmly
believe that none of us believes that, and certainly no-one would
argue that it is not faster than bzr.
I think there are still criticisms of the UI, even though it has
significantly improved recently.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:44 ` James Westby
@ 2008-03-14 13:59 ` David Kastrup
2008-03-14 14:09 ` James Westby
0 siblings, 1 reply; 236+ messages in thread
From: David Kastrup @ 2008-03-14 13:59 UTC (permalink / raw)
To: James Westby
Cc: bazaar, John Arbash Meinel, Matthieu Moy, schwab, emacs-devel,
Eli Zaretskii
James Westby <jw+debian@jameswestby.net> writes:
> On Fri, 2008-03-14 at 14:35 +0100, David Kastrup wrote:
>> John Arbash Meinel <john@arbash-meinel.com> writes:
>>
>> > The biggest reason 'bzr log' is slow is because we spend some time
>> > analyzing the ancestry to give a "pretty" view, while git/hg do not.
>>
>> git most certainly does.
>
> But it's analysis is different.
How?
> It is doing something that has fewer constraints on the output that
> bzr log.
>
> You still end up with a list of revisions, but the ordering on bzr's
> is more complex to calculate.
Then it should improve its data structures.
>> > Specifically, when you do "bzr log" we traverse the ancestry to figure
>> > out when revisions were merged, etc.
>>
>> What makes you think git doesn't?
>
> I don't think John articulated his point as he would have liked there.
>
>> > I believe plain "git log" just starts outputting the revisions as it
>> > encounters them, and "hg log" also outputs them as they are stored.
>>
>> git has a large variety of options for selecting order and subset and
>> relation of what to output to the log.
>
> However it doesn't have one that outputs them in the same order as
> bzr.
The default is topological order. I don't see anything that bzr would
offer additionally.
> I'm sure that John did not intend to say that git "sucks", and I
> firmly believe that none of us believes that, and certainly no-one
> would argue that it is not faster than bzr.
>
> I think there are still criticisms of the UI, even though it has
> significantly improved recently.
Sigh. So it is fine if the logs of bzr are really slow because the UI
of git is considered not all too hot.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:59 ` David Kastrup
@ 2008-03-14 14:09 ` James Westby
2008-03-14 14:29 ` Nicholas Allen
2008-03-15 0:39 ` Stephen J. Turnbull
0 siblings, 2 replies; 236+ messages in thread
From: James Westby @ 2008-03-14 14:09 UTC (permalink / raw)
To: David Kastrup; +Cc: bazaar, Matthieu Moy, schwab, emacs-devel, Eli Zaretskii
On Fri, 2008-03-14 at 14:59 +0100, David Kastrup wrote:
> James Westby <jw+debian@jameswestby.net> writes:
>
> > On Fri, 2008-03-14 at 14:35 +0100, David Kastrup wrote:
> >> John Arbash Meinel <john@arbash-meinel.com> writes:
> >>
> >> > The biggest reason 'bzr log' is slow is because we spend some time
> >> > analyzing the ancestry to give a "pretty" view, while git/hg do not.
> >>
> >> git most certainly does.
> >
> > But it's analysis is different.
>
> How?
May I point you to my blog post of yesterday that explains some of
these issues, rather than spell if all out here?
http://jameswestby.net/weblog/bzr/01-revision-numbers.html
The last section is on this particular issue.
The gist of it is that topological sorting means that children appear
before their parents. bzr does "merge sorting" that ensures that a
revision does not appear after a revision that it is not an ancestor
of.
> > I'm sure that John did not intend to say that git "sucks", and I
> > firmly believe that none of us believes that, and certainly no-one
> > would argue that it is not faster than bzr.
> >
> > I think there are still criticisms of the UI, even though it has
> > significantly improved recently.
>
> Sigh. So it is fine if the logs of bzr are really slow because the UI
> of git is considered not all too hot.
>
Please don't put words in to my mouth.
I was trying to say that while we might acknowledge that git is faster,
there are still things we are trying to do with bzr that make it
worthwile working on it, rather than all switching to hack on git.
While we may be able to offer some UI improvements to git itself there
may be fundamental differences that mean git may always fall short of
what we would like. There are also things that bzr can do that git
will never do (barring any big changes in direction), for instance
foreign branch support.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:32 ` Andreas Schwab
2008-03-14 13:39 ` James Westby
@ 2008-03-14 14:13 ` Matthieu Moy
2008-03-14 14:30 ` Andreas Schwab
1 sibling, 1 reply; 236+ messages in thread
From: Matthieu Moy @ 2008-03-14 14:13 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Eli Zaretskii, dak, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> I don't understand what "trying to figure out that ... were merged"
> means. If there is a merge commit git just shows it as such.
"git log" gives you a flat view. When it encounters a merge commit, it
displays it, and the shows you the two (or more) branches merged by
that commit more or less concatenated together.
IOW, a revision that were brought in your branch by a merge and a
revision that you commited by yourself in the branch is shown in the
same way in git.
As opposed to that, bzr makes the distinction between "mainline
revisions" (that you commited in the branch), and merged revisions
(ancestors of merge commits that you brought here with a merge).
Merged revisions are shown indented below the merge commit which
brought them here.
That's a real difference in the way git and bzr deal with the history
DAG, not just about "log". For example, git merge defaults to
fast-forward (i.e. if you merge a revision you are a direct ancestor
of, you just jump to that revision without creating a new commit).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:10 ` Lennart Borgman (gmail)
2008-03-14 13:23 ` dhruva
@ 2008-03-14 14:19 ` Matthieu Moy
2008-03-14 14:29 ` Lennart Borgman (gmail)
2008-03-15 0:43 ` Jonathan Rockway
2008-03-15 0:44 ` Stephen J. Turnbull
3 siblings, 1 reply; 236+ messages in thread
From: Matthieu Moy @ 2008-03-14 14:19 UTC (permalink / raw)
To: Lennart Borgman (gmail)
Cc: dhruva, Eli Zaretskii, emacs-devel, bazaar, schwab
"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>> If Mercurial had the ability to truly support multiple branches in
>> the same folder (with out requiring me to merge all branches before I
>> can pull - pull works only if there is a single tip/branch), I would
>> have preferred it mainly because it just needs PYTHON and nothing else
>> (GIT needs PERL and SHELL).
>
> How did they do that? It needs both perl and sh? Is there really any
> perl programmer who writes code that way?
The core git is in C, and designed to be used in scripts.
Then, UI commands have usually been prototyped in shell-script, but
there's an ongoing effort to re-write them in C (mostly because
shell-scripts sucks when it comes to robustness and portability).
Some commands have been written in perl instead of C or shell,
probably because they have been written by people who like perl.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:03 ` Andreas Schwab
@ 2008-03-14 14:24 ` Matthieu Moy
2008-03-14 14:41 ` Andreas Schwab
0 siblings, 1 reply; 236+ messages in thread
From: Matthieu Moy @ 2008-03-14 14:24 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Eli Zaretskii, dak, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> Yes, "diff" is quite important as well. Unfortunately, bzr diff seems
> to have the same performance problem.
It shouldn't be on a "normal" setup at least with a recent enough bzr.
Git is obviously faster, but for example, on an emacs tree, "bzr diff"
takes 0.3 seconds, while Git takes 0.05. So, the time taken by bzr is
acceptable to me.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:09 ` James Westby
@ 2008-03-14 14:29 ` Nicholas Allen
2008-03-15 0:39 ` Stephen J. Turnbull
1 sibling, 0 replies; 236+ messages in thread
From: Nicholas Allen @ 2008-03-14 14:29 UTC (permalink / raw)
To: James Westby
Cc: bazaar, David Kastrup, Matthieu Moy, schwab, emacs-devel,
Eli Zaretskii
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I personally love the format Bazaar uses and revision numbers as well as
ids. It is IMHO better than git's. However, it should not imply such a
large performance penalty. I'm sure with better algorithms and data
structures this problem can be solved.
There must be a lot of information that can be computed from the
revision data and cached which is in a format better suited for certain
operations. When I branch I don't want to download this calculated data
as I can compute it in the background on my own machine a lot faster
than I can download it.
So it seems that the packs format is not optimal for logs on single
files. Can't this be represented by a computed and cached alternative
format? At least the next time I log a file it will be very fast. Bazaar
could also do this before I even ask for a log so it is ready the first
time.
Just ideas - I don't know if it makes sense implementation wise....
Nick
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH2ovGbpmWsXfOU58RAkqPAKCV247b0vgev7/vsEFumZhQsSmePQCguhLR
uR/WfFf6TvWAY0510fbIuUM=
=v580
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:19 ` Matthieu Moy
@ 2008-03-14 14:29 ` Lennart Borgman (gmail)
0 siblings, 0 replies; 236+ messages in thread
From: Lennart Borgman (gmail) @ 2008-03-14 14:29 UTC (permalink / raw)
To: Matthieu Moy; +Cc: Eli Zaretskii, emacs-devel, bazaar, schwab
Matthieu Moy wrote:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
>
>>> If Mercurial had the ability to truly support multiple branches in
>>> the same folder (with out requiring me to merge all branches before I
>>> can pull - pull works only if there is a single tip/branch), I would
>>> have preferred it mainly because it just needs PYTHON and nothing else
>>> (GIT needs PERL and SHELL).
>> How did they do that? It needs both perl and sh? Is there really any
>> perl programmer who writes code that way?
>
> The core git is in C, and designed to be used in scripts.
>
> Then, UI commands have usually been prototyped in shell-script, but
> there's an ongoing effort to re-write them in C (mostly because
> shell-scripts sucks when it comes to robustness and portability).
>
> Some commands have been written in perl instead of C or shell,
> probably because they have been written by people who like perl.
Thanks Matthieu, for the explanation. My point was also that perl is far
more portable then sh (beside beeing more powerful as a scripting language).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:13 ` Matthieu Moy
@ 2008-03-14 14:30 ` Andreas Schwab
2008-03-14 14:37 ` Nicholas Allen
` (2 more replies)
0 siblings, 3 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 14:30 UTC (permalink / raw)
To: Matthieu Moy; +Cc: bazaar, Eli Zaretskii, dak, emacs-devel
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
> As opposed to that, bzr makes the distinction between "mainline
> revisions" (that you commited in the branch), and merged revisions
> (ancestors of merge commits that you brought here with a merge).
Is that a useful distinction? I think git treats all branches equal,
there is no "mainline". If you merge two branches that touch different
parts of the tree there is no need to distinguish the two threads.
> That's a real difference in the way git and bzr deal with the history
> DAG, not just about "log". For example, git merge defaults to
> fast-forward (i.e. if you merge a revision you are a direct ancestor
> of, you just jump to that revision without creating a new commit).
If you just move forward in the history it is not really a merge, so
there should not be a need for creating a marker for it.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:30 ` Andreas Schwab
@ 2008-03-14 14:37 ` Nicholas Allen
2008-03-14 16:17 ` David Kastrup
2008-03-14 15:15 ` David Allouche
2008-03-14 15:43 ` Matthieu Moy
2 siblings, 1 reply; 236+ messages in thread
From: Nicholas Allen @ 2008-03-14 14:37 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Eli Zaretskii, dak, Matthieu Moy, emacs-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Andreas Schwab wrote:
| Matthieu Moy <Matthieu.Moy@imag.fr> writes:
|
|> As opposed to that, bzr makes the distinction between "mainline
|> revisions" (that you commited in the branch), and merged revisions
|> (ancestors of merge commits that you brought here with a merge).
|
| Is that a useful distinction? I think git treats all branches equal,
| there is no "mainline". If you merge two branches that touch different
| parts of the tree there is no need to distinguish the two threads.
I disagree! I LOVE this distinction. Each commit on a mainline is for a
feature if you use feature branches. I want to see these 2 features as
separate things regardless of whether they touched the same or different
parts of the tree. Bazaar has the UI spot on I think - it just needs to
perform better. I have been using Bazaar since 0.8 and I can tell you
the performance improvements they have made so far are huge. They are
still working on performance and I'm sure they will fix this issue in
the not too distant future as they have a very good track record of
doing so....
Cheers,
Nick
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH2o2XbpmWsXfOU58RApebAJsG7OWmyRf6triVXQ9nafglYd60rQCcC3Xj
0CHjLN+GLCvKOfrnZAZspIw=
=VYHA
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:24 ` Matthieu Moy
@ 2008-03-14 14:41 ` Andreas Schwab
2008-03-14 14:46 ` Jelmer Vernooij
2008-03-15 0:49 ` Harald Meland
0 siblings, 2 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 14:41 UTC (permalink / raw)
To: Matthieu Moy; +Cc: bazaar, Eli Zaretskii, emacs-devel
Matthieu Moy <Matthieu.Moy@imag.fr> writes:
> Andreas Schwab <schwab@suse.de> writes:
>
>> Yes, "diff" is quite important as well. Unfortunately, bzr diff seems
>> to have the same performance problem.
>
> It shouldn't be on a "normal" setup at least with a recent enough bzr.
> Git is obviously faster, but for example, on an emacs tree, "bzr diff"
> takes 0.3 seconds, while Git takes 0.05. So, the time taken by bzr is
> acceptable to me.
What is the fastest way to get the difference of a revision relative to
its ancestor?
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:41 ` Andreas Schwab
@ 2008-03-14 14:46 ` Jelmer Vernooij
2008-03-14 15:15 ` Andreas Schwab
2008-03-15 0:49 ` Harald Meland
1 sibling, 1 reply; 236+ messages in thread
From: Jelmer Vernooij @ 2008-03-14 14:46 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Eli Zaretskii, dak, Matthieu Moy, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 824 bytes --]
Am Freitag, den 14.03.2008, 15:41 +0100 schrieb Andreas Schwab:
> Matthieu Moy <Matthieu.Moy@imag.fr> writes:
>
> > Andreas Schwab <schwab@suse.de> writes:
> >
> >> Yes, "diff" is quite important as well. Unfortunately, bzr diff seems
> >> to have the same performance problem.
> >
> > It shouldn't be on a "normal" setup at least with a recent enough bzr.
> > Git is obviously faster, but for example, on an emacs tree, "bzr diff"
> > takes 0.3 seconds, while Git takes 0.05. So, the time taken by bzr is
> > acceptable to me.
>
> What is the fastest way to get the difference of a revision relative to
> its ancestor?
if you mean its left hand side ancestor:
bzr diff -c <rev>
Cheers,
Jelmer
--
Jelmer Vernooij <jelmer@samba.org> - http://samba.org/~jelmer/
Jabber: jelmer@jabber.fsfe.org
[-- Attachment #2: Dies ist ein digital signierter Nachrichtenteil --]
[-- Type: application/pgp-signature, Size: 307 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 23:46 ` Jonathan Lange
2008-03-14 2:52 ` dhruva
2008-03-14 10:30 ` Andreas Schwab
@ 2008-03-14 15:02 ` Giorgos Keramidas
2 siblings, 0 replies; 236+ messages in thread
From: Giorgos Keramidas @ 2008-03-14 15:02 UTC (permalink / raw)
To: Jonathan Lange; +Cc: Jason Earl, Martin Pool, emacs-devel
On 2008-03-14 10:46, Jonathan Lange <jml@mumak.net> wrote:
> On Thu, Mar 13, 2008 at 7:04 PM, dhruva <dhruvakm@gmail.com> wrote:
> > Hi,
> > I got bzr setup and running on my M$-XP box. I got the bzr repo of
> > emacs (by downloading the emacs.tar.gz) and updated it to the latest.
> > I wanted to make sure the recent changesets are pulled in. I typed
> > "bzr log -l 10". It took ~24 seconds (elapsed time from perfmon)
> > consistently. Whereas Mercurial (hg log -l 10) on the trunk to 2
> > seconds (and the mercurial repo is on a CIFS mounted drive while bzr
> > repo was on local disk). GIT was fastest though even on a CIFS mounted
> > system.
> >
>
> I was a bit curious about this so I asked my friendly neighbourhood
> Bazaar hacker (CCd). He tells me that comparing 'bzr log' to 'hg log'
> is like comparing apples with ... umm, apple trees. Bazaar's log
> displays all merges and thus has to do calculations on the whole
> ancestry graph. Mercurial's log just displays the mainline history.
> 'bzr log --line' is a better comparison.
The `glog' extension of Mercurial displays an ancestry graph and it can
show the last 3 changesets in less than 1/3 of a second, on a system
that is currently building the CVS 'HEAD' of FreeBSD and the CVS 'HEAD'
of Emacs itself:
keramida@kobe:/hg/emacs/gker$ /usr/bin/time hg glog -l3
@ changeset: 1988:601be9d00890
|\ branch: keramida
| | tag: tip
| | parent: 1724:25ffb390e254
| | parent: 1987:c2bdce21cc28
| | user: Giorgos Keramidas <keramida@ceid.upatras.gr>
| | date: Fri Mar 14 16:48:24 2008 +0200
| | summary: Merge from HEAD
| |
| o changeset: 1987:c2bdce21cc28
| | branch: HEAD
| | user: bastien1
| | date: Fri Mar 14 10:13:27 2008 +0000
| | summary: * textmodes/flyspell.el (nxml-mode): Add the right.
| |
| o changeset: 1986:414912c00a1f
| | branch: HEAD
| | user: miles
| | date: Fri Mar 14 10:06:41 2008 +0000
| | summary: Add arch tagline
| |
0.25 real 0.15 user 0.08 sys
keramida@kobe:/hg/emacs/gker$
I'm not sure if `wait, because we are calculating the changeset
ancestry' is a valid reason for taking too long to show the last two or
three log entries...
> Definitely. I hate waiting for anything, computers most of all. I'll
> hassle Martin and try to get this fixed. Alternatively, the Bazaar
> project welcomes patches with open arms. :)
That's cool. If Emacs converts to bzr, we need all the speed we can
get. The CVS repository of Emacs is one of the CVS repositories with
the longest uninterrupted history I have ever seen :)
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:46 ` Jelmer Vernooij
@ 2008-03-14 15:15 ` Andreas Schwab
0 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 15:15 UTC (permalink / raw)
To: Jelmer Vernooij; +Cc: bazaar, Eli Zaretskii, dak, Matthieu Moy, emacs-devel
Jelmer Vernooij <jelmer@samba.org> writes:
> Am Freitag, den 14.03.2008, 15:41 +0100 schrieb Andreas Schwab:
>> Matthieu Moy <Matthieu.Moy@imag.fr> writes:
>>
>> > Andreas Schwab <schwab@suse.de> writes:
>> >
>> >> Yes, "diff" is quite important as well. Unfortunately, bzr diff seems
>> >> to have the same performance problem.
>> >
>> > It shouldn't be on a "normal" setup at least with a recent enough bzr.
>> > Git is obviously faster, but for example, on an emacs tree, "bzr diff"
>> > takes 0.3 seconds, while Git takes 0.05. So, the time taken by bzr is
>> > acceptable to me.
>>
>> What is the fastest way to get the difference of a revision relative to
>> its ancestor?
> if you mean its left hand side ancestor:
The test repo we are looking at does not have any merges yet. How would
a display of a merge commit look like?
> bzr diff -c <rev>
This is what I was refering to above.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:30 ` Andreas Schwab
2008-03-14 14:37 ` Nicholas Allen
@ 2008-03-14 15:15 ` David Allouche
2008-03-14 15:21 ` James Westby
2008-03-14 15:43 ` Matthieu Moy
2 siblings, 1 reply; 236+ messages in thread
From: David Allouche @ 2008-03-14 15:15 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Eli Zaretskii, dak, Matthieu Moy, emacs-devel
On Fri, Mar 14, 2008 at 3:30 PM, Andreas Schwab <schwab@suse.de> wrote:
> Matthieu Moy <Matthieu.Moy@imag.fr> writes:
>
> > As opposed to that, bzr makes the distinction between "mainline
> > revisions" (that you commited in the branch), and merged revisions
> > (ancestors of merge commits that you brought here with a merge).
>
> Is that a useful distinction? I think git treats all branches equal,
> there is no "mainline".
Bzr also treats all branches as equal. There is no "mainline branch"
the tool knows of. But there are "mainline revisions" in the ancestry
of a given revision (or branch tip).
> If you merge two branches that touch different
> parts of the tree there is no need to distinguish the two threads.
In bzr, the mainline ancestry of a revision is the transitive closure
of the leftmost parent. The mainline ancestry is considered important
because it records the sequence of commits that occured on a given
branch.
It gives a better view of the intent of the committer. For example, a
revision with the message "merge from trunk" usually means "take in
whatever got in the trunk", not "merge feature a, bugfix b, cleanup c,
refactoring d, and 43 other equally crucial changes". Most merges do
not reflect essential work that occured on the branch.
On the other hand, the mainline commits usually capture the essential
work that occured on a branch. By distinguishing them, bzr makes it
easier to read the history of a branch.
> > That's a real difference in the way git and bzr deal with the history
> > DAG, not just about "log". For example, git merge defaults to
> > fast-forward (i.e. if you merge a revision you are a direct ancestor
> > of, you just jump to that revision without creating a new commit).
>
> If you just move forward in the history it is not really a merge, so
> there should not be a need for creating a marker for it.
You can do fast forward in bzr with "pull". Merge behave differently
because we consider that "merge" _as a task_ has a different meaning
_to the user_ than pull.
Typically, a gatekeeper only merges, then run the test suite, and only
commit if the test suite pass. The gatekeeper's branch mainline
history will only contain revisions that passed the test suite.
The way you make it sound, the git approach is "if we can get the same
result by fast forward, we do not need a new commit". The bzr approach
is that a new commit provides important historical information
regardless.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 15:15 ` David Allouche
@ 2008-03-14 15:21 ` James Westby
0 siblings, 0 replies; 236+ messages in thread
From: James Westby @ 2008-03-14 15:21 UTC (permalink / raw)
To: David Allouche
Cc: bazaar, dak, Matthieu Moy, Andreas Schwab, emacs-devel,
Eli Zaretskii
On Fri, 2008-03-14 at 16:15 +0100, David Allouche wrote:
> You can do fast forward in bzr with "pull". Merge behave differently
> because we consider that "merge" _as a task_ has a different meaning
> _to the user_ than pull.
And if you disagree please add a bzr alias to alias "merge" to
"merge --pull", and you will get the behaviour that you want.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:30 ` Andreas Schwab
2008-03-14 14:37 ` Nicholas Allen
2008-03-14 15:15 ` David Allouche
@ 2008-03-14 15:43 ` Matthieu Moy
2 siblings, 0 replies; 236+ messages in thread
From: Matthieu Moy @ 2008-03-14 15:43 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Eli Zaretskii, dak, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> Matthieu Moy <Matthieu.Moy@imag.fr> writes:
>
>> As opposed to that, bzr makes the distinction between "mainline
>> revisions" (that you commited in the branch), and merged revisions
>> (ancestors of merge commits that you brought here with a merge).
>
> Is that a useful distinction?
It really depends on your flow.
If the organization of developers forms a kind of tree, then on each
branch, bzr will show the revisions in a kind of hierarchical way,
like
42: Merged feature foo
41.3: bugfix in implementation of foo
41.2: added NEWS entry
41.1: implement foo
41: Merged feature bar
...
...
So, you can get a global view of history following mainline revisions,
and go into details when walking through merged revisions. The bzr
people usually like this distinction.
There are drawbacks though. One of them is that this pushes people
towards a flow where the mainline is different from other branches. If
you don't, then the hierarchical view of bzr will look like garbage,
you'll see some "keep in sync with upstream" commits in the middle of
mainline, ... People like Torvalds find this unacceptable.
So, asking whether bzr does the right thing is like asking whether
Emacs is better than vim. One is obviously better than the other, and
everybody thinking a different way has to be plain stupid, but people
still didn't agree on which is which ;-).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:37 ` Nicholas Allen
@ 2008-03-14 16:17 ` David Kastrup
2008-03-14 16:32 ` Daniel Mark Watkins
0 siblings, 1 reply; 236+ messages in thread
From: David Kastrup @ 2008-03-14 16:17 UTC (permalink / raw)
To: Nicholas Allen
Cc: Andreas Schwab, Eli Zaretskii, emacs-devel, Matthieu Moy, bazaar
Nicholas Allen <allen@ableton.com> writes:
> Bazaar has the UI spot on I think - it just needs to perform better. I
> have been using Bazaar since 0.8 and I can tell you the performance
> improvements they have made so far are huge. They are still working on
> performance and I'm sure they will fix this issue in the not too
> distant future as they have a very good track record of doing so....
Reminds me of a job I once did in geodesy. The previous people working
on the job (partly doctors of informatics) had done several iterations
of optimizations on the code, halving its running time in the process,
then squeezing off some more. Problem was that the data sets to be
processed were expected to more than triple, and the stuff was already
running a day or so.
I tried working myself into the code (I always have a hard time
understanding code of others, and one of the reasons I was put on the
job was that the code was getting more fragile) and after about two
weeks gave up. I just don't have the mental capacity to find myself
comfortable around in a mess I did not create myself. So I just spent
two days on thinking about an algorithm and optimizations and stuff and
implemented it from scratch. Took probably another two weeks of coding
and testing where it wasn't dumping core or running into loops or
similar. And then I got stuck debugging it. The stuff just terminated
after a few minutes of run time, and I was running out of ideas what was
wrong.
After about a day of placing breakpoints and looking at the data
structures I was running out of ideas and turned to looking at the
generated output.
It was correct. Since that time I have a healthy dose of scepticism
about people (and teams) tinkering with their algorithms and "coming
through".
The real metric is not how much you improve things, but where they
should be in the first place.
I am not implying that this is happening here. But if we are several
orders of magnitude behind the competition, the proven ability of
squeezing off some runtime at the cost of legibility (and thus also the
viability of further optimizations without destabilization) is not a
useful metric.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 16:17 ` David Kastrup
@ 2008-03-14 16:32 ` Daniel Mark Watkins
0 siblings, 0 replies; 236+ messages in thread
From: Daniel Mark Watkins @ 2008-03-14 16:32 UTC (permalink / raw)
To: David Kastrup; +Cc: bazaar, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1132 bytes --]
Hi David,
On Fri, 14 Mar 2008 17:17:01 +0100
David Kastrup <dak@gnu.org> wrote:
> It was correct. Since that time I have a healthy dose of scepticism
> about people (and teams) tinkering with their algorithms and "coming
> through".
>
> The real metric is not how much you improve things, but where they
> should be in the first place.
>
> I am not implying that this is happening here. But if we are several
> orders of magnitude behind the competition, the proven ability of
> squeezing off some runtime at the cost of legibility (and thus also
> the viability of further optimizations without destabilization) is
> not a useful metric.
The impression I get is that Bazaar has its concerns well-separated
enough internally that an entirely new algorithm for a given part of
the code base can be substituted in without a great deal of hassle.
That is to say, many of the performance improvements being made are
not tweaks to existing algorithms, but replacements of the existing
algorithms with better ones. A recent example of this would be knits
being replaced by packs in the storage layer.
Dan
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:40 ` Eli Zaretskii
` (2 preceding siblings ...)
2008-03-14 13:03 ` Andreas Schwab
@ 2008-03-14 18:04 ` Dan Nicolaescu
2008-03-14 19:42 ` Stefan Monnier
2008-03-14 21:43 ` Karl Fogel
2008-03-15 0:00 ` Stephen J. Turnbull
5 siblings, 1 reply; 236+ messages in thread
From: Dan Nicolaescu @ 2008-03-14 18:04 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: schwab, emacs-devel, Matthieu Moy, bazaar
Eli Zaretskii <eliz@gnu.org> writes:
> > From: Matthieu Moy <Matthieu.Moy@imag.fr>
> > Date: Fri, 14 Mar 2008 10:58:13 +0100
> > Cc: Andreas Schwab <schwab@suse.de>, emacs-devel@gnu.org,
> > bazaar@lists.canonical.com
> >
> > > Andreas Schwab <schwab@suse.de> writes:
> > >
> > >> My first impression is that bzr is slow, so slow that it is completely
> > >> unusable. How can it come that a simple bzr log takes more than a
> > >> minute to even start? Even cvs log is instantaneous in comparison,
> > >> although it has to request the log from the server.
> > [...]
> > As opposed to that, bzr has to get a global view of history at least
> > to get the revision numbers (there was some plans caching this
> > information, I don't know what's the status).
> >
> > That said, the time for bzr log to start should clearly not be _that_
> > long.
>
> Incidentally, why are we concentrating on "bzr log"? is that a
> frequent operation?
For me it is. Every time I change some code that I am not 100% sure I
know, I do a vc-annotate and then from the *vc-annotate* buffer vc-log
and vc-diff on the "interesting" lines.
> Aren't "push" and "pull" much more important, as far as speed is
> concerned, for everyday work? Also the equivalent of "cvs diff", I
> think. Those are the ops I use much more frequently than "log" and
> "annotate".
diff is surely much more frequent than "log" and "annotate", but it also
takes more than a minute with bzr (much slower than CVS).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (8 preceding siblings ...)
2008-03-13 14:18 ` Andreas Schwab
@ 2008-03-14 18:08 ` Stefan Monnier
2008-03-14 18:35 ` Jason Earl
2008-03-14 18:51 ` Andreas Schwab
2008-03-14 18:31 ` Goffredo Baroncelli
` (4 subsequent siblings)
14 siblings, 2 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-14 18:08 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
> is interested in playing with the results you can check out the HEAD of
> the CVS repository with:
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
Other than issues of performance, one of the missing elements in this
repository is all the merge information.
Most of the merges we've done have been done via Arch. IIUC people have
been able to retrofit this info into the Git tree, and I think it'd be
very worthwhile to retrofit it into the Bzr tree.
How can we add the merge info into the above Bzr tree?
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (9 preceding siblings ...)
2008-03-14 18:08 ` Stefan Monnier
@ 2008-03-14 18:31 ` Goffredo Baroncelli
2008-03-16 18:57 ` Stefan Monnier
` (3 subsequent siblings)
14 siblings, 0 replies; 236+ messages in thread
From: Goffredo Baroncelli @ 2008-03-14 18:31 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
I Jason,
I setup my webserve interface on a clone of your repo. You can found it at
http://goffredo-baroncelli.homelinux.net/bazaar-dev/emacs.trunk
I am working on a speed improvement (caching the revisionid), in order to
minimize the delay (now the system requires 20 seconds in order to give a
page).
BR
Goffredo
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 18:08 ` Stefan Monnier
@ 2008-03-14 18:35 ` Jason Earl
2008-03-14 18:51 ` Andreas Schwab
1 sibling, 0 replies; 236+ messages in thread
From: Jason Earl @ 2008-03-14 18:35 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> After a few false starts I have been successful (at least as far as I
>> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
>> is interested in playing with the results you can check out the HEAD of
>> the CVS repository with:
>
>> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
>
> Other than issues of performance, one of the missing elements in this
> repository is all the merge information.
Yeah, I didn't notice that until people started talking about bzr log
and I realized that it wasn't showing the merge information.
> Most of the merges we've done have been done via Arch. IIUC people
> have been able to retrofit this info into the Git tree, and I think
> it'd be very worthwhile to retrofit it into the Bzr tree.
If someone knows how the folks that made the git repository did this
maybe I could work something out. Or possibly I could take another
whack at creating a bzr repository from the git repository instead of
from CVS.
Alternatively, I could experiment with creating a bzr repository from
arch. Where are those branches located?
> How can we add the merge info into the above Bzr tree?
I've certainly got some things I can try.
Jason
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 18:08 ` Stefan Monnier
2008-03-14 18:35 ` Jason Earl
@ 2008-03-14 18:51 ` Andreas Schwab
2008-03-14 19:15 ` Stefan Monnier
1 sibling, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 18:51 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, Jason Earl, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> How can we add the merge info into the above Bzr tree?
Probably the easiest way is by starting from
<http://repo.or.cz/w/emacs.git>. I have spend quite some time to add
merge commits to this tree or updating the automatically created ones to
make them most useful. I have also corrected a few mistakes that crept
in due to shortcomings of cvsps or misuses of cvs.
It should be possible to losslessly convert this tree to whatever VCS we
end up using.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 18:51 ` Andreas Schwab
@ 2008-03-14 19:15 ` Stefan Monnier
2008-03-14 19:32 ` Andreas Schwab
2008-03-14 20:12 ` Thomas Lord
0 siblings, 2 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-14 19:15 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Jason Earl, emacs-devel
>> How can we add the merge info into the above Bzr tree?
> Probably the easiest way is by starting from
> <http://repo.or.cz/w/emacs.git>. I have spend quite some time to add
> merge commits to this tree or updating the automatically created ones to
> make them most useful. I have also corrected a few mistakes that crept
> in due to shortcomings of cvsps or misuses of cvs.
> It should be possible to losslessly convert this tree to whatever VCS we
> end up using.
Is this git tree "better" than the one in git.sv.gnu.org?
If so, can someone update the one in git.sv.gnu.org to include the
improvements that are in http://repo.or.cz/w/emacs.git.
Even if we end up using this tree to generate the initial Bzr tree, I'd
be interested to know who to add merge info to a Bzr repository.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 19:15 ` Stefan Monnier
@ 2008-03-14 19:32 ` Andreas Schwab
2008-03-14 20:12 ` Thomas Lord
1 sibling, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 19:32 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> How can we add the merge info into the above Bzr tree?
>
>> Probably the easiest way is by starting from
>> <http://repo.or.cz/w/emacs.git>. I have spend quite some time to add
>> merge commits to this tree or updating the automatically created ones to
>> make them most useful. I have also corrected a few mistakes that crept
>> in due to shortcomings of cvsps or misuses of cvs.
>
>> It should be possible to losslessly convert this tree to whatever VCS we
>> end up using.
>
> Is this git tree "better" than the one in git.sv.gnu.org?
Yes, IMVHO. To get a picture of what is different you can run "gitk
--all" in both trees.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 18:04 ` Dan Nicolaescu
@ 2008-03-14 19:42 ` Stefan Monnier
2008-03-14 19:47 ` Andreas Schwab
0 siblings, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-14 19:42 UTC (permalink / raw)
To: Dan Nicolaescu; +Cc: schwab, Eli Zaretskii, bazaar, Matthieu Moy, emacs-devel
>> Aren't "push" and "pull" much more important, as far as speed is
>> concerned, for everyday work? Also the equivalent of "cvs diff", I
>> think. Those are the ops I use much more frequently than "log" and
>> "annotate".
> diff is surely much more frequent than "log" and "annotate", but it also
> takes more than a minute with bzr (much slower than CVS).
bzr diff <somefile> is pretty much instantaneous for me.
Even on the whole tree, it's just a couple seconds. Good enough for me.
OTOH vc-diff on a bzr file takes ages (like 10s). Not sure yet what's
going on.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 19:42 ` Stefan Monnier
@ 2008-03-14 19:47 ` Andreas Schwab
2008-03-14 20:01 ` Mathias Dahl
0 siblings, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 19:47 UTC (permalink / raw)
To: Stefan Monnier
Cc: bazaar, Eli Zaretskii, Dan Nicolaescu, Matthieu Moy, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> bzr diff <somefile> is pretty much instantaneous for me.
> Even on the whole tree, it's just a couple seconds. Good enough for me.
> OTOH vc-diff on a bzr file takes ages (like 10s). Not sure yet what's
> going on.
As soon as you start using revision numbers bzr becomes slow.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 19:47 ` Andreas Schwab
@ 2008-03-14 20:01 ` Mathias Dahl
2008-03-14 20:06 ` Andreas Schwab
0 siblings, 1 reply; 236+ messages in thread
From: Mathias Dahl @ 2008-03-14 20:01 UTC (permalink / raw)
To: Andreas Schwab
Cc: bazaar, Matthieu Moy, emacs-devel, Dan Nicolaescu, Stefan Monnier,
Eli Zaretskii
> As soon as you start using revision numbers bzr becomes slow.
Do you mean the revision *numbers* per se, or the fact that there are
more revisions? Quite strange behavior for a VCS, the whole point is
to track different versions/revisions of files...
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 20:01 ` Mathias Dahl
@ 2008-03-14 20:06 ` Andreas Schwab
0 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-14 20:06 UTC (permalink / raw)
To: Mathias Dahl
Cc: bazaar, Matthieu Moy, emacs-devel, Dan Nicolaescu, Stefan Monnier,
Eli Zaretskii
"Mathias Dahl" <mathias.dahl@gmail.com> writes:
>> As soon as you start using revision numbers bzr becomes slow.
>
> Do you mean the revision *numbers* per se, or the fact that there are
> more revisions?
The problem seems to be connected to the way bzr computes revision
numbers from the tree.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 19:15 ` Stefan Monnier
2008-03-14 19:32 ` Andreas Schwab
@ 2008-03-14 20:12 ` Thomas Lord
1 sibling, 0 replies; 236+ messages in thread
From: Thomas Lord @ 2008-03-14 20:12 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Andreas Schwab, Jason Earl, emacs-devel, bazaar
Stefan Monnier wrote:
> Even if we end up using this tree to generate the initial Bzr tree, I'd
> be interested to know who to add merge info to a Bzr repository.
>
>
This is a frustrating development, from my perspective.
Arch was designed to *not* be monolithic, in some specific
ways that are relevant to problems like this:
Arch defines a "global name-space" for projects, branches,
and revisions -- but the idea is that you can use that name-space
without using all of Arch. Users disliked a few superficial
attributes of the Arch name-space but the basic idea of
having one is sound. Without picking a specific DVCS,
one can still pick a distributed, global name-space for revisions.
Arch records merge history in the source tree itself, using
ordinary files, referring to that global name-space. The
source tree, not some external database, tells you what has
been merged into a given revision. So, again,
you can use Arch's way of recording merge history even if
you don't use Arch itself. In practice, it's like having a
Changelog but an extra-fancy changelog that tells you
(or the merge tools you use) the merge history. All that the
underlying DVCS has to do is make it possible to look up
various trees (or deltas between them) using the global names.
If you start with those two things, global names for
revisions and in-tree merge-history, then your perspective
on distributed revision control should change completely.
For example, merge operations need not any longer be
some built-in facility of the revision control system. Rather,
merge operations are, by definition, algorithms that do some
diffing and patching by looking at in-tree merge history
and comparing various trees that are named there. A merge
operator can be coded abstractly, in a way that works
across multiple revision control systems.
If a project like emacs, instead of picking a DVCS, picks
a naming convention for revisions and a representation
convention for merge history, then portability between
DVCS systems becomes a largely moot issue.
-t
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:40 ` Eli Zaretskii
` (3 preceding siblings ...)
2008-03-14 18:04 ` Dan Nicolaescu
@ 2008-03-14 21:43 ` Karl Fogel
2008-03-15 0:00 ` Stephen J. Turnbull
5 siblings, 0 replies; 236+ messages in thread
From: Karl Fogel @ 2008-03-14 21:43 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: schwab, emacs-devel, Matthieu Moy, bazaar
Eli Zaretskii <eliz@gnu.org> writes:
> Incidentally, why are we concentrating on "bzr log"? is that a
> frequent operation? With CVS, I find myself doing "cvs log" only once
> in a few months, when I'm looking for a change corresponding to some
> ChangeLog entry.
All of this is anecdotal, but for what it's worth, I find myself using
'cvs log' on the Emacs tree more like once a week (and more often than
that, when I'm actively working on something).
The lesson here may be that developers' habits can differ greatly!
-Karl
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 11:28 ` Thomas Lord
@ 2008-03-14 22:23 ` Stephen J. Turnbull
2008-03-14 23:49 ` Thomas Lord
0 siblings, 1 reply; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-14 22:23 UTC (permalink / raw)
To: Thomas Lord; +Cc: Andreas Schwab, Jason Earl, emacs-devel, Forest Bond, bazaar
Thomas Lord writes:
> Andreas Schwab wrote:
> > An older version would not be able to use the repo at all.
> >
>
>
> Perhaps that kind of consideration should be given some weight.
>
> If "repo format" is not obviously pretty stable, how suitable
> is it for an archival format?
As long as new version can read old repos reliably, new repos can
represent a superset of the old metadata, and there's a conversion
utility, this is not a problem. Generic database managers deal with
these problems all the time, it's "solved" in some sense.
Question in my mind is, given bzr's propensity to change
representations, does the bzr development team have somebody who's
worked on that kind of function, and demands that functionality be
rock-solid?
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:56 ` dhruva
2008-03-14 13:10 ` Lennart Borgman (gmail)
@ 2008-03-14 22:26 ` Martin Geisler
2008-03-15 12:09 ` dhruva
2008-03-19 10:50 ` Sascha Wilde
2 siblings, 1 reply; 236+ messages in thread
From: Martin Geisler @ 2008-03-14 22:26 UTC (permalink / raw)
To: emacs-devel; +Cc: bazaar
[-- Attachment #1: Type: text/plain, Size: 1781 bytes --]
dhruva <dhruvakm@gmail.com> writes:
> Having tried a bunch of SCM, I must say GIT way of supporting multiple
> branches under the same folder along with its speed it a sure winner.
> I was opposing GIT due to its non-availability on M$, it is history
> now and the port they have is really good. The build is streamlined on
> M$ too, I pull their changes regularly, build, install and use the
> bleeding edge. It has not failed me so far.
>
> If Mercurial had the ability to truly support multiple branches in
> the same folder (with out requiring me to merge all branches before I
> can pull - pull works only if there is a single tip/branch), I would
> have preferred it mainly because it just needs PYTHON and nothing else
> (GIT needs PERL and SHELL).
I think you are confusing several 'heads' with several 'branches' here.
And even if you have several heads in your Mercurial repository, you can
certainly still pull in new changesets.
> Speed wise, I find both GIT and Mercurial very close to each other.
> GIT may be faster but not noticeable to human perceptions (well on
> emacs repository I have tried). Here, I give GIT a thumbs up because
> it has data for all branches and still the fastest. If mercurial
> decides to support multiple branches under the same folder, I wonder
> what impact it might have on the speed.
Have you searched on the Mercurial Wiki? You have both 'local branches'
and 'named branches' to choose from:
http://www.selenic.com/mercurial/wiki/index.cgi/LocalbranchExtension
http://www.selenic.com/mercurial/wiki/index.cgi/NamedBranches
--
Martin Geisler
VIFF (Virtual Ideal Functionality Framework) brings easy and efficient
SMPC (Secure Multi-Party Computation) to Python. See: http://viff.dk/.
[-- Attachment #2: Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 8:23 ` John Arbash Meinel
2008-03-14 13:32 ` Andreas Schwab
2008-03-14 13:35 ` David Kastrup
@ 2008-03-14 23:34 ` Stephen J. Turnbull
2008-03-17 10:41 ` Matthieu Moy
2008-03-17 12:39 ` Sergei Organov
2 siblings, 2 replies; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-14 23:34 UTC (permalink / raw)
To: John Arbash Meinel
Cc: schwab, Eli Zaretskii, bazaar, Matthieu Moy, emacs-devel
John Arbash Meinel writes:
> (I believe 'git log' defaults to showing the log based on a local sort
> by date. Neither one tries to figure out that A1 and A2 were merged into
> tip, which is another step that 'bzr log' does.)
YAGNI most of the time, though. John, I know where you're coming
from, but it looks like you're throwing up red herrings and making
excuses. There's no question that git is good enough for Emacs on a
day-to-day basis. bzr's performance problems make me wonder if it is.
It would be interesting to see a "time git rev-list --topo-order"
(which does the same thing as "bzr log" AFAICS) on the relevant repo.
Here are two timings on my most complicated XEmacs git repo (but it
only has 601 changesets, including 40 branches and 38 merges):
chibi:git-staging steve$ time git-rev-list --topo-order HEAD
[[ output omitted ]]
real 0m1.131s user 0m0.060s sys 0m0.124s
chibi:git-staging steve$ time git-rev-list --topo-order HEAD | wc
601 601 24641
real 0m0.423s user 0m0.060s sys 0m0.130s
So let's scale that up to 90,000 commits assuming O(n) (which may not
be implausible for a topological sort on a DAG): user time of 9s.
I conclude that git chose the right representation for a DAG of
changesets right off the bat. It is <effect sound="drum roll" />
a DAG of changesets.
AFAICT, both bazaar and Mercurial said, "whoa, that's going to be
inefficient in some operations", and immediately chose array
representations with some kind of temporal index (temporal because
they want all inserts in the database to be file appends for ACID and
efficiency). Linus said "Listen to Tony", and he proved right when
the "git pack" format was introduced.
Original Arch and Darcs are "set of changeset"-oriented, so they can't
be compared to the DAG-oriented ones on this dimension; they can do
things directly that git, bzr, and hg can't (although I wouldn't put
it past Linus and/or other gitfans to implement efficient indirect
ways to accomplish them).
This is a consequence of what I posted a couple of months ago. git is
a Lisp specialized to manipulating revision DAGs and accessing the
underlying revisions.
None of this is intended to specifically advocate git for the Emacs
repo. Mercurial is probably good enough (an estimate after using it
with XEmacs, a comparable codebase but only about 500 revisions, since
early December). bzr is likely good enough too. Both have UI
advantages over git at the moment, and bzr log is definitely the best
(if you ignore how slow it is), but why bother with "bzr log" when
"gitk" is almost certainly equally fast (and much faster to update
than bzr log is to run again)?
OTOH, many Emacs developers won't run any vcs by hand, they'll use
vc.el or pcl-<vcs>.el (which doesn't exist for vcs in (git hg bzr)
AFAIK, but if Emacs chooses one, I bet it's a matter of days). In
that case it's important that *all* vc and pcl operations be
acceptably efficient.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 22:23 ` Stephen J. Turnbull
@ 2008-03-14 23:49 ` Thomas Lord
0 siblings, 0 replies; 236+ messages in thread
From: Thomas Lord @ 2008-03-14 23:49 UTC (permalink / raw)
To: Stephen J. Turnbull
Cc: Andreas Schwab, Jason Earl, Forest Bond, bazaar, emacs-devel
Stephen J. Turnbull wrote:
> Question in my mind is, given bzr's propensity to change
> representations, does the bzr development team have somebody who's
> worked on that kind of function, and demands that functionality be
> rock-solid?
>
>
"Back in the day" (early days of GNU), aside from walking
uphill to school in both directions, the project had a pretty
solid revision control history *across the various programs*.
Namely, the GNU FTP site. It had (approximately) every
officially named revision of all GNU programs. It had (approximately)
all of the "interesting" diffs between versions. We did "DVC"
by hand (and we liked it that way!). The concept of a
CVS "vendor branch" comes right out of this arrangement.
It's been downhill ever since. Arch had the right idea which
is to just automate that old situation rather than replace it.
For performance, build *ancillary* indexes and databases
but treat the tar bundles as the end-to-end check; those
are things that are ultimately being managed.
-t
>
>
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:40 ` Eli Zaretskii
` (4 preceding siblings ...)
2008-03-14 21:43 ` Karl Fogel
@ 2008-03-15 0:00 ` Stephen J. Turnbull
5 siblings, 0 replies; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-15 0:00 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: schwab, emacs-devel, Matthieu Moy, bazaar
Eli Zaretskii writes:
> Incidentally, why are we concentrating on "bzr log"?
Partly because intuitively it "should" be fast, it's just a "cat" of
the index file. But this isn't true for bzr, so people's expectations
are contradicted.
> is that a frequent operation?
Yes. You need changeset IDs frequently for communicating with users
and other developers, and for diffs.
> With CVS, I find myself doing "cvs log" only once in a few months,
> when I'm looking for a change corresponding to some ChangeLog
> entry.
I think that you will pretty quickly find that ChangeLogs as you know
them have to be abandoned, because they cause merge conflicts at
O(n^2) or so, where n = "rate of commits/unit of time". Also, most
developers in projects using VCSes more recent than CVS use "<vcs>
log" a lot. A big problem is that ChangeLogs either have to be
excluded from their changesets, or you can't include a changeset ID in
the ChangeLog entry corresponding to the changeset. (IDs are secure
hashes and thus you must solve a fixed-point problem for a secure hash
function if the ChangeLog containing the ID is part of the changeset!)
> Aren't "push" and "pull" much more important, as far as speed is
> concerned, for everyday work?
In theory, yes. In practice, no. They're done sufficiently often
that (with the possible exception of Darcs) all recent VCSes are
net-lag-bound because users won't put up with speed issues for local
repos. In practice these also only have "big O" problems when you're
pulling an old and active branch for the first time, which is
acceptable if success is guaranteed. (Another problem with bzr, as
we've seen -- a long pull is likely to fail because the requested
archives may disappear before they get shipped out the wire. This is
probably a configuration issue with Jason's repo, typically there are
parameters you want to tweak for public repos vs private branches.)
> Also the equivalent of "cvs diff", I think.
With the exception of Darcs (which can be O(r1 - r2)), all modern
VCSes do this quickly.
> Those are the ops I use much more frequently than "log" and "annotate".
I use both fairly frequently, and it's very annoying to me when they
take more than 5 seconds or so. YMMV of course.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:09 ` James Westby
2008-03-14 14:29 ` Nicholas Allen
@ 2008-03-15 0:39 ` Stephen J. Turnbull
2008-03-15 10:30 ` James Westby
1 sibling, 1 reply; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-15 0:39 UTC (permalink / raw)
To: James Westby
Cc: bazaar, John Arbash Meinel, Matthieu Moy, schwab, emacs-devel,
Eli Zaretskii
James Westby writes:
> May I point you to my blog post of yesterday that explains some of
> these issues, rather than spell if all out here?
>
> http://jameswestby.net/weblog/bzr/01-revision-numbers.html
>
> The last section is on this particular issue.
>
> The gist of it is that topological sorting means that children appear
> before their parents. bzr does "merge sorting" that ensures that a
> revision does not appear after a revision that it is not an ancestor
> of.
Excuse me? There may be something sensible you wish to say, but what
I have quoted is not it. If A and B are not ordered by ancestry both
"AB" and "BA" fail to be a "merge sort" according to that criterion.
From the blog:
Always having merge commits means that "bzr log --short" and "bzr
log --line" can give you a good summary of what happened on your
branch, the commits you did, and the things that you merged. It
preserves a mainline for you in the left hand ancestry,
git-show-branch does this satisfactorily for me, although admittedly
more recent unmerged commits on other branches may show up first.
This is a *good* thing if I'm thinking about merging them, though.
OTOH, gitk simply prunes any unmerged commits by default. How does
"merge sort" differ from "topological sort pruning unmerged commits"?
AFAICT in that case "not an ancestor" == "is a descendant" so topo
sort and merge sort are the same. What am I missing?
The indentation of the merged commits (and the fact they disappear
with "--short" and "--line") means that mentally they become of
lesser importance.
But that's exactly what I rarely want. I know what I did, unless it
was a long time ago. What I generally want to know is what others are
doing, and how that impacts my branch when I merge their code.
> While we may be able to offer some UI improvements to git itself there
> may be fundamental differences that mean git may always fall short of
> what we would like. There are also things that bzr can do that git
> will never do (barring any big changes in direction), for instance
> foreign branch support.
What is "foreign branch support", and why do you think that a program
which is amounts to being a browser for the universal revision graph
can't do it? An URL would do.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:10 ` Lennart Borgman (gmail)
2008-03-14 13:23 ` dhruva
2008-03-14 14:19 ` Matthieu Moy
@ 2008-03-15 0:43 ` Jonathan Rockway
2008-03-15 14:37 ` Eli Zaretskii
2008-03-15 0:44 ` Stephen J. Turnbull
3 siblings, 1 reply; 236+ messages in thread
From: Jonathan Rockway @ 2008-03-15 0:43 UTC (permalink / raw)
To: emacs-devel
* On Fri, Mar 14 2008, Lennart Borgman (gmail) wrote:
>> If Mercurial had the ability to truly support multiple branches in
>> the same folder (with out requiring me to merge all branches before I
>> can pull - pull works only if there is a single tip/branch), I would
>> have preferred it mainly because it just needs PYTHON and nothing else
>> (GIT needs PERL and SHELL).
>
>
> How did they do that? It needs both perl and sh? Is there really any
> perl programmer who writes code that way?
I don't think they mix Perl and shell in the same files. It's just that
git is a collection of written-in-C "plumbing" and then some helpful
scripts on top of that plumbing. Some of the helpful scripts are
written in Perl, some are written in shell.
So to use git, you need a C compiler, a UNIX shell, and Perl. But I
think that setup is actually more common than Python, so it's not a real
loss. (Except on Windows that doesn't have a shell or a as-good-as-UNIX
perl. But Windows is lacking in a lot of other features too.)
Finally, for the record, git is not a good place to learn Perl from :)
But hey, it works.
Regards,
Jonathan Rockway
--
print just => another => perl => hacker => if $,=$"
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 13:10 ` Lennart Borgman (gmail)
` (2 preceding siblings ...)
2008-03-15 0:43 ` Jonathan Rockway
@ 2008-03-15 0:44 ` Stephen J. Turnbull
2008-03-17 10:43 ` Matthieu Moy
3 siblings, 1 reply; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-15 0:44 UTC (permalink / raw)
To: Lennart Borgman (gmail)
Cc: bazaar, Matthieu Moy, schwab, emacs-devel, Eli Zaretskii
Lennart Borgman (gmail) writes:
> How did they do that? It needs both perl and sh? Is there really any
> perl programmer who writes code that way?
"They" is the operative word. Some code was written in C by C
programmers, some as shell scripts by shell programmers, some in Perl
by Perl programmers, some in Tcl by Tcl programmers, and some even in
Python IIRC.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 14:41 ` Andreas Schwab
2008-03-14 14:46 ` Jelmer Vernooij
@ 2008-03-15 0:49 ` Harald Meland
1 sibling, 0 replies; 236+ messages in thread
From: Harald Meland @ 2008-03-15 0:49 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Eli Zaretskii, dak, Matthieu Moy, emacs-devel
[Andreas Schwab]
> Matthieu Moy <Matthieu.Moy@imag.fr> writes:
>
>> Andreas Schwab <schwab@suse.de> writes:
>>
>>> Yes, "diff" is quite important as well. Unfortunately, bzr diff seems
>>> to have the same performance problem.
>>
>> It shouldn't be on a "normal" setup at least with a recent enough bzr.
>> Git is obviously faster, but for example, on an emacs tree, "bzr diff"
>> takes 0.3 seconds, while Git takes 0.05. So, the time taken by bzr is
>> acceptable to me.
>
> What is the fastest way to get the difference of a revision relative to
> its ancestor?
I would guess "bzr diff -r before:revid:$revision_id..revid:$revision_id"
(which ought to be equivalent to "bzr diff -c revid:$revision_id") as
that (in theory) shouldn't need to calculate any revision numbers.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 7:03 ` Martin Pool
@ 2008-03-15 4:44 ` Stephen J. Turnbull
0 siblings, 0 replies; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-15 4:44 UTC (permalink / raw)
To: Martin Pool; +Cc: Jonathan Lange, Jason Earl, emacs-devel
Martin Pool writes:
> This means that c and d were merged into this branch in revision b,
> and were not previously present in the repository. This layout gives
> a good overview of the history, in our opinion a much better one than
> what you get from tools that just print one path through the graph or
> that print the revisions in arbitrary linear order.
OK, but is it worth a minute per execution when a minute will give me
a gitk view of the history?
> To calculate which revisions are newly merged is currently done by
> examining the whole graph. We will do two things to speed it up:
> faster loading of the graph from the repository, and caching some data
> in the branch.
Well, as I pointed out in another post, in git the repo *is* the DAG.
No caches needed.
> But possibly you don't want to know about merged in revisions, and
> that can be done with bzr log --short or --line. These should be able
> to do much less work, just walking down through the revision to print.
I always want to know about the merged-in revisions. It would never
occur to me to leave them out ... unless that was the only way to get
a sub-minute log, of course. I'm really having trouble grasping what
kind of workflow this tool is intended for.
> I want to point out that bzr branch locally, not in a single
> repository, is doing more than just copying all the files - it is
> filtering out and verifying the data relevant to the particular branch
> you're copying.
But so does git fetch. Of course, since the repo is the DAG, it
doesn't have to do any extra work. If it finds the object, the DAG is
correct. If it doesn't, the repo is corrupt.
I don't know the details of the git packed format, but since indicies
and content are in separate files, presumably the content packs could
be corrupt even though the DAG checks out. But that will be caught
O(0) because git does a checksum for every transmission anyway. I
assume that's true for bzr as well, of course.
> > # Command line typo on a local URL, bzr figures it out in 10s.
> > $ time bzr branch EMACS_22_BASE
> > bzr: ERROR: Not a branch: "/Users/steve/Software/Emacs/emacs-bzr/EMACS_22_BASE/".
> >
> > real 0m10.183s user 0m0.457s sys 0m1.361s
>
> Maybe you could send (perhaps just on the bzr list) a run of that with
> "bzr --lsprof branch ...". It may be that the low cpu usage is caused
> by many things being pushed out of ram by building the emacs working
> tree in the previous command.
That's really cold comfort. My CPU and I/O bus are typically
multitasked. Anyway, "user 0.457s + sys 1.361s" is over 10 times my
threshold of perception. Presumably that's essentally all Python
startup overhead, since there was no branch to look at there. That's
a real handicap against git, where "git-rev-list --topo" posts "user
0.060s + sys 0.124s" for >600 revs!
I ran "time bzr --lsprof branch EMACS_22_BASE" twice in succession.
The first was just over 10s wallclock again, the second down to just
under 6s. URLs to profiles follow time output.
real 0m10.097s user 0m1.109s sys 0m1.828s
real 0m5.954s user 0m0.768s sys 0m1.201s
http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/bzf.prof.0
http://turnbull.sk.tsukuba.ac.jp/Tools/XEmacs/bzf.prof.1
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-15 0:39 ` Stephen J. Turnbull
@ 2008-03-15 10:30 ` James Westby
2008-03-15 12:30 ` James Westby
0 siblings, 1 reply; 236+ messages in thread
From: James Westby @ 2008-03-15 10:30 UTC (permalink / raw)
To: Stephen J. Turnbull
Cc: bazaar, David Kastrup, Matthieu Moy, schwab, emacs-devel,
Eli Zaretskii
On Sat, 2008-03-15 at 09:39 +0900, Stephen J. Turnbull wrote:
> James Westby writes:
>
> > May I point you to my blog post of yesterday that explains some of
> > these issues, rather than spell if all out here?
> >
> > http://jameswestby.net/weblog/bzr/01-revision-numbers.html
> >
> > The last section is on this particular issue.
> >
> > The gist of it is that topological sorting means that children appear
> > before their parents. bzr does "merge sorting" that ensures that a
> > revision does not appear after a revision that it is not an ancestor
> > of.
>
> Excuse me? There may be something sensible you wish to say, but what
> I have quoted is not it. If A and B are not ordered by ancestry both
> "AB" and "BA" fail to be a "merge sort" according to that criterion.
>
Sorry, it appears I didn't explain it well enough. I missed the word
"also", as bzr also adds a constraint over and above topo-sorting.
It then also prefers to output left-hand parents first.
Consider the following revision graph (parents above children)
A
|\
B C
|/
D
A topo-sort requires that D be emitted before B and C, and that B and C
be emitted before A, but it does not impose an ordering on B and C.
If you add bzr's rules then it prefers to output left-hand parents
first, so it would output B before C. However this would then violate
the other constraint, as C would come after B, but B is not an ancestor
of C. Therefore C must be output before B. Add in the indentation
depending on whether the revision is a left or right hand parent
of the previous revision and you have bzr's log output.
> The indentation of the merged commits (and the fact they disappear
> with "--short" and "--line") means that mentally they become of
> lesser importance.
>
> But that's exactly what I rarely want. I know what I did, unless it
> was a long time ago. What I generally want to know is what others are
> doing, and how that impacts my branch when I merge their code.
>
Ok, use "bzr merge --pull".
> > While we may be able to offer some UI improvements to git itself there
> > may be fundamental differences that mean git may always fall short of
> > what we would like. There are also things that bzr can do that git
> > will never do (barring any big changes in direction), for instance
> > foreign branch support.
>
> What is "foreign branch support", and why do you think that a program
> which is amounts to being a browser for the universal revision graph
> can't do it? An URL would do.
>
>
I'm sorry, I can't really follow this paragraph. I can explain what we
mean by foreign branch support.
We mean that the bzr client can access the branches/repositories/working
trees of other systems transparently. For instance if you install
bzr-svn, "bzr branch svn://..." works.
This might not have been the best example, as git-svn exists, and works
great for using git to access svn. However it is not transparent, you
must use the git-svn command for some tasks. Also you can't use the
git client in an svn working tree (checkout) if you have one already.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 22:26 ` Martin Geisler
@ 2008-03-15 12:09 ` dhruva
2008-03-15 21:32 ` Martin Geisler
2008-03-25 21:46 ` Giorgos Keramidas
0 siblings, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-15 12:09 UTC (permalink / raw)
To: Martin Geisler; +Cc: bazaar, emacs-devel
Hi,
On Sat, Mar 15, 2008 at 3:56 AM, Martin Geisler <mg@daimi.au.dk> wrote:
> And even if you have several heads in your Mercurial repository, you can
> certainly still pull in new changesets.
I have seen it and have used it too. The problem comes (from my
experience) when you have to push. I agree you can create a new named
branch and just pull in changes or do a forced pull which will create
a new head. Suppose I want to keep multiple named branches active and
yet push to a remote repository from one of the named branch, IMO it
is not possible with mercurial. I would be happy to know if there is a
way to do it.
-dhruva
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-15 10:30 ` James Westby
@ 2008-03-15 12:30 ` James Westby
0 siblings, 0 replies; 236+ messages in thread
From: James Westby @ 2008-03-15 12:30 UTC (permalink / raw)
To: Stephen J. Turnbull
Cc: bazaar, David Kastrup, Matthieu Moy, schwab, emacs-devel,
Eli Zaretskii
On Sat, 2008-03-15 at 10:30 +0000, James Westby wrote:
> Sorry, it appears I didn't explain it well enough. I missed the word
> "also", as bzr also adds a constraint over and above topo-sorting.
> It then also prefers to output left-hand parents first.
Yeah, these rules don't actually describe the algorithm at all,
sorry about that.
How about "bzr outputs all descendants of the right hand parents
of a revision before the left hand parent, except those that are
also ancestors of the left hand parent?" Does that describe the
algorithm?
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-15 0:43 ` Jonathan Rockway
@ 2008-03-15 14:37 ` Eli Zaretskii
2008-03-15 15:06 ` dhruva
0 siblings, 1 reply; 236+ messages in thread
From: Eli Zaretskii @ 2008-03-15 14:37 UTC (permalink / raw)
To: Jonathan Rockway; +Cc: emacs-devel
> From: Jonathan Rockway <jon@jrock.us>
> Date: Fri, 14 Mar 2008 19:43:05 -0500
>
> Windows is lacking in a lot of other features too.
Actually, it doesn't, it just does it differently. For example, the
shell in the latest versions is quite powerful, but of course is not
compatible with Posix shells.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-15 14:37 ` Eli Zaretskii
@ 2008-03-15 15:06 ` dhruva
0 siblings, 0 replies; 236+ messages in thread
From: dhruva @ 2008-03-15 15:06 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: Jonathan Rockway, emacs-devel
Hi,
On Sat, Mar 15, 2008 at 8:07 PM, Eli Zaretskii <eliz@gnu.org> wrote:
> > From: Jonathan Rockway <jon@jrock.us>
> > Date: Fri, 14 Mar 2008 19:43:05 -0500
> >
> > Windows is lacking in a lot of other features too.
>
> Actually, it doesn't, it just does it differently. For example, the
> shell in the latest versions is quite powerful, but of course is not
> compatible with Posix shells.
I resisted from responding. Having worked on UNIX (and various
flavors), M$ and OpenVMS too, I must say each operating system has a
different way of doing things. Just because they are not POSIX
compliant does not mean it is bad or unusable. The M$ bashing is a bit
old fashioned these days and it makes sense to develop applications
that can be used on multiple platforms as the user base is quite
evenly distributed.
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-15 12:09 ` dhruva
@ 2008-03-15 21:32 ` Martin Geisler
2008-03-25 21:46 ` Giorgos Keramidas
1 sibling, 0 replies; 236+ messages in thread
From: Martin Geisler @ 2008-03-15 21:32 UTC (permalink / raw)
To: mercurial; +Cc: emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 2043 bytes --]
dhruva <dhruvakm@gmail.com> writes:
> Hi,
>
> On Sat, Mar 15, 2008 at 3:56 AM, Martin Geisler <mg@daimi.au.dk> wrote:
>>dhruva <dhruvakm@gmail.com> writes:
>>> Having tried a bunch of SCM, I must say GIT way of supporting
>>> multiple branches under the same folder along with its speed it a
>>> sure winner. I was opposing GIT due to its non-availability on M$,
>>> it is history now and the port they have is really good. The build
>>> is streamlined on M$ too, I pull their changes regularly, build,
>>> install and use the bleeding edge. It has not failed me so far.
>>>
>>> If Mercurial had the ability to truly support multiple branches in
>>> the same folder (with out requiring me to merge all branches before
>>> I can pull - pull works only if there is a single tip/branch), I
>>> would have preferred it mainly because it just needs PYTHON and
>>> nothing else (GIT needs PERL and SHELL).
>>
>> I think you are confusing several 'heads' with several 'branches'
>> here. And even if you have several heads in your Mercurial
>> repository, you can certainly still pull in new changesets.
>
> I have seen it and have used it too. The problem comes (from my
> experience) when you have to push. I agree you can create a new named
> branch and just pull in changes or do a forced pull which will create
> a new head. Suppose I want to keep multiple named branches active and
> yet push to a remote repository from one of the named branch, IMO it
> is not possible with mercurial. I would be happy to know if there is a
> way to do it.
I'm afraid I'm no expert on named branches in Mercurial, I just wanted
to point out that pulling in changesets is a normal supported operation
even when you have multiple heads.
I've posted this to the Mercurial user list too since I think the
question is much more suited for them to answer.
--
Martin Geisler
VIFF (Virtual Ideal Functionality Framework) brings easy and efficient
SMPC (Secure Multi-Party Computation) to Python. See: http://viff.dk/.
[-- Attachment #1.2: Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (10 preceding siblings ...)
2008-03-14 18:31 ` Goffredo Baroncelli
@ 2008-03-16 18:57 ` Stefan Monnier
2008-03-16 19:53 ` Andreas Schwab
2008-03-16 21:47 ` Toshio Kuratomi
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
` (2 subsequent siblings)
14 siblings, 2 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-16 18:57 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
> is interested in playing with the results you can check out the HEAD of
> the CVS repository with:
Another piece of information that I find missing is all the tags.
It seems they are present in the form of
http://bzr.notengoamigos.org/emacs/tags pseudo branches, but they're not
present in the form of actual Bzr tags. Also some important ones (such
as EMACS_19_34, EMACS_20_4, and EMACS_21_1) are missing.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-16 18:57 ` Stefan Monnier
@ 2008-03-16 19:53 ` Andreas Schwab
2008-03-17 15:00 ` Michael Haggerty
2008-03-16 21:47 ` Toshio Kuratomi
1 sibling, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-16 19:53 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> Also some important ones (such as EMACS_19_34, EMACS_20_4, and
> EMACS_21_1) are missing.
These are due to shortcomings of cvsps.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-16 18:57 ` Stefan Monnier
2008-03-16 19:53 ` Andreas Schwab
@ 2008-03-16 21:47 ` Toshio Kuratomi
1 sibling, 0 replies; 236+ messages in thread
From: Toshio Kuratomi @ 2008-03-16 21:47 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, emacs-devel
[-- Attachment #1.1: Type: text/plain, Size: 716 bytes --]
Stefan Monnier wrote:
>> After a few false starts I have been successful (at least as far as I
>> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
>> is interested in playing with the results you can check out the HEAD of
>> the CVS repository with:
>
> Another piece of information that I find missing is all the tags.
> It seems they are present in the form of
> http://bzr.notengoamigos.org/emacs/tags pseudo branches, but they're not
> present in the form of actual Bzr tags.
I wrote a patch about six months to a year ago to deal with this.
https://bugs.launchpad.net/bzr-cvsps-import/+bug/128326
I'm attaching the patch -- but it might need to be updated.
-Toshio
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: bzr-cvsps-tags.patch --]
[-- Type: text/x-patch; name="bzr-cvsps-tags.patch", Size: 8580 bytes --]
=== modified file '__init__.py'
--- __init__.py 2007-01-19 17:03:04 +0000
+++ __init__.py 2007-07-25 16:36:34 +0000
@@ -64,10 +64,14 @@
help='Use cvs to extract texts.'),
option.Option('use-rcs',
help='Use rcs to extract texts. (default)'),
+ option.Option('use-dirstate-tags',
+ help='Use bzr metadata tags rather than'
+ ' a branch per tag'),
]
def run(self, cvsroot=None, module=None, output=None, cvsps_dump=None,
- encoding=None, verify=True, use_cvs=False, use_rcs=False):
+ encoding=None, verify=True, use_cvs=False, use_rcs=False,
+ use_dirstate_tags=False):
from cvsps import importer
if cvsroot.startswith(':pserver:') or cvsroot.startswith(':ext:'):
@@ -78,11 +82,18 @@
if not use_cvs and not use_rcs:
# Default is to use rcs, since it is slightly faster.
use_cvs = False
+
+ if use_dirstate_tags:
+ tag_style = 'dirstate'
+ else:
+ tag_style = 'branch'
+
importer = importer.Importer(cvsroot, module, output,
cvsps_dump=cvsps_dump,
encoding=encoding,
verify=verify,
- use_cvs_for_text=use_cvs)
+ use_cvs_for_text=use_cvs,
+ tag_style=tag_style)
importer.process()
=== modified file 'cvsps/importer.py'
--- cvsps/importer.py 2007-02-12 18:03:03 +0000
+++ cvsps/importer.py 2007-07-25 18:14:22 +0000
@@ -597,11 +597,12 @@
"""
def __init__(self, bzr_repo, cvs_root, cvs_module, map_file,
- verify=True, use_cvs_for_text=True):
+ verify=True, use_cvs_for_text=True, tag_style=None):
self._bzr_repo = bzr_repo
self._map_file = map_file
self._cvs_root = cvs_root
self._cvs_module = cvs_module
+ self._tag_style = tag_style or 'branch'
self._working_path = osutils.pathjoin(
self._bzr_repo.bzrdir.root_transport.local_abspath('.'),
@@ -623,7 +624,7 @@
self._n_existing_patches = 0
self._n_tags = 0
- def handle_patchset(self, patchset):
+ def handle_patchset(self, patchset, pb):
"""Handle one of the patchsets from cvs to bzr"""
revision_id = self._map_file.get(patchset.num)
@@ -653,7 +654,11 @@
self._n_patches += 1
if patchset.tag is not None:
- self._handle_tag(patchset, revision_id)
+ if self._tag_style == 'dirstate':
+ self._handle_tag_dirstate(patchset, revision_id, pb)
+ else:
+ self._handle_tag_branch(patchset, revision_id)
+
action += '+tag'
return revision_id, action
@@ -830,8 +835,13 @@
os.makedirs(branch_path)
# Create a new one
+ format = bzrdir.BzrDirFormat.get_default_format()
+ if self._tag_style == 'dirstate' and not format.get_branch_format().supports_tags():
+ format = bzrdir.format_registry.get('dirstate-tags')()
+
target_branch = bzrdir.BzrDir.create_branch_convenience(branch_path,
- force_new_tree=False)
+ force_new_tree=False,
+ format=format)
self._set_repo(target_branch)
target_branch.lock_write()
self._cache_branch(patchset.branch, target_branch)
@@ -875,7 +885,23 @@
return revision_id
- def _handle_tag(self, patchset, revision_id):
+ def _handle_tag_dirstate(self, patchset, revision_id, pb):
+ """Create a tag with the given revision id."""
+ # TODO: toshio 20070725 We probably want to check that the branch
+ # format supports tags and convert it if it doesn't. However, the
+ # repository is locked at this point so it's not as simple as the
+ # below code.
+ #
+ # Currently, I'm making sure that the branches support tags when
+ # we create them.
+ #if not self._cur_bzr_branch.supports_tags():
+ # newFormat = bzrdir.format_registry.get('dirstate-tags')()
+ # converter = self._cur_bzr_branch.bzrdir._format.get_converter(newFormat)
+ # self._cur_bzr_branch = converter.convert(self._cur_bzr_branch.bzrdir, pb)
+ self._cur_bzr_branch.tags.set_tag(patchset.tag, revision_id)
+ self._n_tags += 1
+
+ def _handle_tag_branch(self, patchset, revision_id):
"""Create a tag with the given revision id."""
tag_branch_path = self._get_tag_branch_path(patchset.tag)
try:
@@ -969,10 +995,12 @@
"""Import a CVS project into bzr."""
def __init__(self, cvsroot, cvs_module, output_base, cvsps_dump=None,
- encoding=None, verify=True, use_cvs_for_text=True):
+ encoding=None, verify=True, use_cvs_for_text=True,
+ tag_style=None):
self._cvs_root = osutils.abspath(cvsroot)
self._cvs_module = cvs_module
self._use_cvs_for_text = use_cvs_for_text
+ self._tag_style = tag_style or 'branch'
self._verify = verify
self.output_base = output_base
@@ -1016,7 +1044,7 @@
os.makedirs(path)
self._paths_created = True
- def open_or_create_bzr_repo(self):
+ def open_or_create_bzr_repo(self, pb):
"""Open the bzr repository, creating it if needed."""
self.setup_directories()
bzr_repo_transport = transport.get_transport(self._repo_path)
@@ -1024,6 +1052,11 @@
a_bzrdir = bzrdir.BzrDir.open_from_transport(bzr_repo_transport)
except errors.NotBranchError:
return self._create_bzr_repo(bzr_repo_transport)
+ if self._tag_style == 'dirstate' and (
+ not a_bzrdir.find_branch_format().supports_tags()):
+ newFormat = bzrdir.format_registry.get('dirstate-tags')()
+ converter = a_bzrdir._format.get_converter(newFormat)
+ a_bzrdir = converter.convert(a_bzrdir, pb)
return a_bzrdir.open_repository()
def _create_bzr_repo(self, a_transport):
@@ -1033,6 +1066,10 @@
except errors.FileExists:
pass
fmt = bzrdir.BzrDirFormat.get_default_format()
+ if self._tag_style == 'dirstate' and not (
+ fmt.get_branch_format().supports_tags()):
+ fmt = bzrdir.format_registry.get('dirstate-tags')()
+
control = fmt.initialize_on_transport(a_transport)
repo = control.create_repository(shared=True)
repo.set_make_working_trees(False)
@@ -1065,7 +1102,7 @@
n_patchsets = len(patchsets)
for i, patchset in enumerate(patchsets):
try:
- rev_id, action = cvs_to_bzr.handle_patchset(patchset)
+ rev_id, action = cvs_to_bzr.handle_patchset(patchset, pb)
except KeyboardInterrupt:
if pb is not None:
pb.clear()
@@ -1101,7 +1138,11 @@
def process(self):
"""Start converting the repository."""
- repo = self.open_or_create_bzr_repo()
+ pb = ui.ui_factory.nested_progress_bar()
+ try:
+ repo = self.open_or_create_bzr_repo(pb=pb)
+ finally:
+ pb.finished()
# Maintain a repository wide lock for the whole transaction
# that should help cache stuff.
# TODO: jam 20061121 This may actually cache *too* much. Consider
@@ -1115,7 +1156,8 @@
try:
cvs_to_bzr = CVSToBzr(repo, self._cvs_root, self._cvs_module,
map_file, verify=self._verify,
- use_cvs_for_text=self._use_cvs_for_text)
+ use_cvs_for_text=self._use_cvs_for_text,
+ tag_style=self._tag_style)
start_time = time.time()
pb = ui.ui_factory.nested_progress_bar()
try:
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 23:34 ` Stephen J. Turnbull
@ 2008-03-17 10:41 ` Matthieu Moy
2008-03-17 12:39 ` Sergei Organov
1 sibling, 0 replies; 236+ messages in thread
From: Matthieu Moy @ 2008-03-17 10:41 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: schwab, Eli Zaretskii, bazaar, emacs-devel
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
> OTOH, many Emacs developers won't run any vcs by hand, they'll use
> vc.el or pcl-<vcs>.el (which doesn't exist for vcs in (git hg bzr)
> AFAIK, but if Emacs chooses one, I bet it's a matter of days).
It's not called pcl-<vcs>, but DVC exists:
http://download.gna.org/dvc/
(don't look at the manual, prehistorically deprecated, but the tool
itself is quite good, and supports Bzr, Baz, Mercurial, Monotone,
Darcs and Git).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-15 0:44 ` Stephen J. Turnbull
@ 2008-03-17 10:43 ` Matthieu Moy
0 siblings, 0 replies; 236+ messages in thread
From: Matthieu Moy @ 2008-03-17 10:43 UTC (permalink / raw)
To: Stephen J. Turnbull
Cc: bazaar, schwab, Lennart Borgman (gmail), emacs-devel, dhruva,
Eli Zaretskii
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
> Lennart Borgman (gmail) writes:
>
> > How did they do that? It needs both perl and sh? Is there really any
> > perl programmer who writes code that way?
>
> "They" is the operative word. Some code was written in C by C
> programmers, some as shell scripts by shell programmers, some in Perl
> by Perl programmers, some in Tcl by Tcl programmers, and some even in
> Python IIRC.
There used to be a few lines of python in Git itself I think, but it
has been rewritten to remove the python dependency. The hg and p4
importers are in contrib/, and written in python though.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 23:34 ` Stephen J. Turnbull
2008-03-17 10:41 ` Matthieu Moy
@ 2008-03-17 12:39 ` Sergei Organov
2008-03-18 1:48 ` Dan Nicolaescu
1 sibling, 1 reply; 236+ messages in thread
From: Sergei Organov @ 2008-03-17 12:39 UTC (permalink / raw)
To: bazaar; +Cc: emacs-devel
"Stephen J. Turnbull" <stephen@xemacs.org> writes:
[...]
> OTOH, many Emacs developers won't run any vcs by hand, they'll use
> vc.el or pcl-<vcs>.el (which doesn't exist for vcs in (git hg bzr)
> AFAIK, but if Emacs chooses one, I bet it's a matter of days).
There is git.el in the GIT source tree that is intended to mimic pcl-cvs
as much as possible and is already quite useful. There is also
git-annotate.el.
-- Sergei.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-16 19:53 ` Andreas Schwab
@ 2008-03-17 15:00 ` Michael Haggerty
2008-03-17 16:37 ` Andreas Schwab
0 siblings, 1 reply; 236+ messages in thread
From: Michael Haggerty @ 2008-03-17 15:00 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, Stefan Monnier, emacs-devel
Andreas Schwab wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
>> Also some important ones (such as EMACS_19_34, EMACS_20_4, and
>> EMACS_21_1) are missing.
>
> These are due to shortcomings of cvsps.
Please be very careful with conversion tools that are based on cvsps.
It is an admirable attempt at the very difficult job of allowing
incremental operation, but it is known to give significantly incorrect
output in many circumstances. See for example [1,2,3]. Note that
git-cvsimport is based on a version of cvsps that they improved to fix
some problems, but this version can also output history that is
completely incorrect.
Please consider using cvs2svn for your conversion [4]. It can output to
git-fast-import (and therefore hopefully to bzr-fast-import) [5], it
avoids a number of the known limitations of cvsps which can result in
incorrect history, it can easily handle the emacs CVS repository (at
least when converting to SVN), and it has very many options that can be
used to customize the conversion [6]. It has a long track record of
converting from CVS to SVN (though it can only be used for one-time
conversions).
Having said that, using cvs2svn to output to a DVCS is rather new and
has a couple of known problems. One is that too many files are added to
branches and tags (because I misunderstood an aspect of the
git-fast-import format); the other is that it creates fixup branches for
all tags even when they are not needed. I am currently working on both
of these problems, but you might want to wait a bit before using it for
a final conversion.
Whatever tool you use to do the conversion, please check at least the
contents of the latest trunk, tags, and branches before relying on the
conversion output. I'd hate to see the venerable emacs history
corrupted :-)
Michael
[1] http://marc.info/?l=git&m=118260312708709&w=2
[2] http://common-lisp.net/pipermail/slime-devel/2008-March/007173.html
[3] http://selenic.com/pipermail/mercurial-devel/2008-February/004975.html
[4] http://cvs2svn.tigris.org
[5] http://cvs2svn.tigris.org/cvs2git.html
[6] http://cvs2svn.tigris.org/features.html
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-17 15:00 ` Michael Haggerty
@ 2008-03-17 16:37 ` Andreas Schwab
0 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-17 16:37 UTC (permalink / raw)
To: Michael Haggerty; +Cc: bazaar, Stefan Monnier, emacs-devel
Michael Haggerty <mhagger@alum.mit.edu> writes:
> Andreas Schwab wrote:
>> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>
>>> Also some important ones (such as EMACS_19_34, EMACS_20_4, and
>>> EMACS_21_1) are missing.
>>
>> These are due to shortcomings of cvsps.
>
> Please be very careful with conversion tools that are based on cvsps.
> It is an admirable attempt at the very difficult job of allowing
> incremental operation, but it is known to give significantly incorrect
> output in many circumstances.
I know, I'm currently trying to fixup some of the mistakes it made.
> Please consider using cvs2svn for your conversion [4].
While I agree that cvs2svn is the best tool available to convert a CVS
repository, the biggest problem with it is that it is not incremental.
Having to start from scratch would throw away all the nice fixup made to
create proper merges (and there are _many_ merges in Emacs CVS).
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-17 12:39 ` Sergei Organov
@ 2008-03-18 1:48 ` Dan Nicolaescu
2008-03-18 2:13 ` dhruva
0 siblings, 1 reply; 236+ messages in thread
From: Dan Nicolaescu @ 2008-03-18 1:48 UTC (permalink / raw)
To: Sergei Organov; +Cc: bazaar, emacs-devel
Sergei Organov <osv@javad.com> writes:
> "Stephen J. Turnbull" <stephen@xemacs.org> writes:
> [...]
> > OTOH, many Emacs developers won't run any vcs by hand, they'll use
> > vc.el or pcl-<vcs>.el (which doesn't exist for vcs in (git hg bzr)
> > AFAIK, but if Emacs chooses one, I bet it's a matter of days).
>
> There is git.el in the GIT source tree that is intended to mimic pcl-cvs
> as much as possible and is already quite useful.
The plan is that vc-status should at some point supersede pcl-cvs and
git.el. It can be used now, but it's not complete.
> There is also git-annotate.el.
This should not be needed anymore, vc-git.el supports vc-annotate.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 1:48 ` Dan Nicolaescu
@ 2008-03-18 2:13 ` dhruva
2008-03-18 4:03 ` Karl Fogel
2008-03-18 19:27 ` Richard Stallman
0 siblings, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-18 2:13 UTC (permalink / raw)
To: Emacs Devel, Stefan Monnier, Chong Yidong, esr
Hello,
With lengthy discussions having taken place on this SCM issue, what
are we waiting for? Are there really any concrete plans to move to a
dSCM or are we just wasting talking about features and shortcomings of
each tool. Any outcome of ESR study?
From my truly humble opinion, GIT and Mercurial are the top
contenders with GIT having an edge over Mercurial due to speed,
ability to hack on multiple branches in the same folder (repository)
and an active development and porting initiatives (mercurial has
similar record). GIT has the ability to talk to a SVN repository,
though this is not important for Emacs, more people might start using
GIT because of this feature (well, I started mainly due to this
feature as my work place used SVN). The fact that GIT has a CVS server
option makes it possible to share the code base to CVS clients. For
example, if someone on OpenVMS (DEC VMS) wants to access Emacs
repository, GIT is not ported to VMS. They can still use the port of
CVS client on VMS to access Emacs source directly from VMS.
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 2:13 ` dhruva
@ 2008-03-18 4:03 ` Karl Fogel
2008-03-18 5:00 ` dhruva
` (2 more replies)
2008-03-18 19:27 ` Richard Stallman
1 sibling, 3 replies; 236+ messages in thread
From: Karl Fogel @ 2008-03-18 4:03 UTC (permalink / raw)
To: dhruva; +Cc: esr, Chong Yidong, Stefan Monnier, Emacs Devel
dhruva <dhruvakm@gmail.com> writes:
> With lengthy discussions having taken place on this SCM issue, what
> are we waiting for? Are there really any concrete plans to move to a
> dSCM or are we just wasting talking about features and shortcomings of
> each tool. Any outcome of ESR study?
I think you may have missed the news :-).
We decided on bzr, which in practice seems to mean "some people are
seriously testing bzr, and once we have a good conversion and are
satisfied we can get work done, someone will install it on savannah and
that repository will be the new master".
All of the DVCSs seem good. No one marshalled any compelling arguments
in favor of one versus the other on technical grounds, and all other
things being equal, RMS (and maybe some others, perhaps including Yidong
and Stefan?) preferred bzr because it is a GNU project.
The above is a summary of what I take to be the current state of things.
My personal opinions: I'm also happy with bzr, and would be equally
happy with any of the usual suspects among free software DVCS. I just
hope we can switch the master soon.
-Karl
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 4:03 ` Karl Fogel
@ 2008-03-18 5:00 ` dhruva
2008-03-18 5:40 ` Jonathan Lange
2008-03-18 9:17 ` Andreas Schwab
2008-03-18 19:31 ` Mike Mattie
2 siblings, 1 reply; 236+ messages in thread
From: dhruva @ 2008-03-18 5:00 UTC (permalink / raw)
To: Karl Fogel, Emacs Devel, Stefan Monnier, Chong Yidong, esr
Good that the decision has been made. Since it is bzr, the earlier we
have an official bzr emacs repo the better it is. I can focus my
efforts on testing bzr and hope to see its performance improved. Like
the git repo on savannah, we need a bzr repo to play with real fast.
-dhruva
On 3/18/08, Karl Fogel <kfogel@red-bean.com> wrote:
> dhruva <dhruvakm@gmail.com> writes:
> > With lengthy discussions having taken place on this SCM issue, what
> > are we waiting for? Are there really any concrete plans to move to a
> > dSCM or are we just wasting talking about features and shortcomings of
> > each tool. Any outcome of ESR study?
>
> I think you may have missed the news :-).
>
> We decided on bzr, which in practice seems to mean "some people are
> seriously testing bzr, and once we have a good conversion and are
> satisfied we can get work done, someone will install it on savannah and
> that repository will be the new master".
>
> All of the DVCSs seem good. No one marshalled any compelling arguments
> in favor of one versus the other on technical grounds, and all other
> things being equal, RMS (and maybe some others, perhaps including Yidong
> and Stefan?) preferred bzr because it is a GNU project.
>
> The above is a summary of what I take to be the current state of things.
> My personal opinions: I'm also happy with bzr, and would be equally
> happy with any of the usual suspects among free software DVCS. I just
> hope we can switch the master soon.
>
> -Karl
>
--
Sent from Gmail for mobile | mobile.google.com
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 5:00 ` dhruva
@ 2008-03-18 5:40 ` Jonathan Lange
0 siblings, 0 replies; 236+ messages in thread
From: Jonathan Lange @ 2008-03-18 5:40 UTC (permalink / raw)
To: dhruva; +Cc: Karl Fogel, esr, Chong Yidong, Stefan Monnier, Emacs Devel
On Tue, Mar 18, 2008 at 4:00 PM, dhruva <dhruvakm@gmail.com> wrote:
> Good that the decision has been made. Since it is bzr, the earlier we
> have an official bzr emacs repo the better it is. I can focus my
> efforts on testing bzr and hope to see its performance improved.
It's improving even as we talk about it. There have already been
performance patches filed because of this thread[1].
It'd be great if you keep raising performance issues on the Bazaar
mailing list or on IRC (#bzr on Freenode) -- it'll make them a lot
easier to fix.
jml
[1] This one in particular,
http://bundlebuggy.aaronbentley.com/request/%3C47DB7DC7.8080400@arbash-meinel.com%3E
and one mentioned in a previous post
http://bundlebuggy.aaronbentley.com/request/%3C47D9E60A.6030203@canonical.com%3E
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 4:03 ` Karl Fogel
2008-03-18 5:00 ` dhruva
@ 2008-03-18 9:17 ` Andreas Schwab
2008-03-18 10:00 ` dhruva
` (2 more replies)
2008-03-18 19:31 ` Mike Mattie
2 siblings, 3 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-18 9:17 UTC (permalink / raw)
To: Karl Fogel; +Cc: esr, Chong Yidong, Stefan Monnier, Emacs Devel
Karl Fogel <kfogel@red-bean.com> writes:
> All of the DVCSs seem good. No one marshalled any compelling arguments
> in favor of one versus the other on technical grounds, and all other
> things being equal, RMS (and maybe some others, perhaps including Yidong
> and Stefan?) preferred bzr because it is a GNU project.
In its current form bzr is not usable for a project of the size of
Emacs.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 9:17 ` Andreas Schwab
@ 2008-03-18 10:00 ` dhruva
2008-03-19 5:44 ` Bastien
2008-03-29 1:00 ` Xavier Maillard
2008-03-18 16:50 ` Stefan Monnier
2008-03-29 1:00 ` Xavier Maillard
2 siblings, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-18 10:00 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Karl Fogel, esr, Chong Yidong, Stefan Monnier, Emacs Devel
Hello,
On Tue, Mar 18, 2008 at 2:47 PM, Andreas Schwab <schwab@suse.de> wrote:
> Karl Fogel <kfogel@red-bean.com> writes:
>
> > All of the DVCSs seem good. No one marshalled any compelling arguments
> > in favor of one versus the other on technical grounds, and all other
> > things being equal, RMS (and maybe some others, perhaps including Yidong
> > and Stefan?) preferred bzr because it is a GNU project.
>
> In its current form bzr is not usable for a project of the size of
> Emacs.
I feel the decision to move to bzr is mainly because it is a GNU
project. Every open discussion seems to suggest either GIT or
mercurial in the emacs list (and other projects considering a change
in SCM too).
Either we decide to postpone till bzr is good enough or set a timeline
by which all SCM related comparisons can happen and decide. Deciding
to move the bzr and then hope for things to improve will be depending
too much on HOPE.
I just hope it the decision is based on technical facts rather than
affiliations and emotions...
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Emacs repository benchmark: bzr and git
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (11 preceding siblings ...)
2008-03-16 18:57 ` Stefan Monnier
@ 2008-03-18 15:43 ` Teemu Likonen
2008-03-18 15:51 ` Lennart Borgman (gmail)
` (4 more replies)
2008-03-22 17:59 ` Emacs Bazaar repository Stefan Monnier
2008-03-24 7:53 ` Christian Faulhammer
14 siblings, 5 replies; 236+ messages in thread
From: Teemu Likonen @ 2008-03-18 15:43 UTC (permalink / raw)
To: emacs-devel, bazaar
I did some benchmarking in git and bzr repositories of Emacs. Some
numbers: 89711 revisions (by "git log --pretty=oneline | wc -l"), 2825
files. Both repositories seem to have just linear history converted from
CVS repo. Both have the same head revision which is
481c2a1e31f32c8aa0fb6d504575b75a18537788 (git) and
revid:cvs-1:tsdh-20080318180244-lxbzttdnh6ecqbka (bzr).
Repositories/branches are pulled from here:
git: git://git.sv.gnu.org/emacs.git
bzr: http://bzr.notengoamigos.org/emacs/trunk/
My system is AMD Sempron 3000+ with 2 GB memory and it's running Debian
GNU/Linux 4.0. I'm using the latest development versions of both git
(1.5.5.rc0.6.gdeda) and bzr (1.4dev). I just measured with 'time'
command how long it takes to run certain commands.
Viewing history
---------------
The complete history:
$ time git log >/dev/null
real 0m5.741s
$ time bzr log >/dev/null
real 3m15.708s
Last 100 revisions:
$ time git log -100 >/dev/null
real 0m0.011s
$ time bzr log -l100 >/dev/null
real 2m10.270s
Last 10 revisions:
$ time git log -10 >/dev/null
real 0m0.007s
$ time bzr log -l10 >/dev/null
real 2m9.163s
The complete history of a single file:
$ time git log src/keymap.c >/dev/null
real 0m9.240s
(The same as above but with detecting and following possible renames:)
$ time git log --follow src/keymap.c >/dev/null
real 0m17.891s
$ time bzr log src/keymap.c >/dev/null
real 3m35.431s
Differences between revisions
-----------------------------
I'm using exactly the same revisions in both repositories:
revid:cvs-1:wohler-20080318101724-c3ofm3vslli3wfwl = -r -5
revid:cvs-1:dann-20080318035819-bwawewmyps2rb2ot = -r -11
2635714f3dac5f24eb1997cbf97285810f6799c0 = HEAD~4
c4d57908d6d8c693e779599182b810565b2eb608 = HEAD~10
View changes introduced in given revision:
(This shows also the commit message, author and date.)
$ time git show 2635714f3dac5f24eb1997cbf97285810f6799c0 >/dev/null
real 0m0.012s
$ time bzr diff -c revid:cvs-1:wohler-20080318101724-c3ofm3vslli3wfwl >/dev/null
real 2m40.467s
Show differences between two revisions:
$ time git diff HEAD~10..HEAD~4 >/dev/null
real 0m0.076s
$ time bzr diff -r -11..-5 >/dev/null
real 2m44.214s
$ time git diff HEAD~4.. >/dev/null
real 0m0.072s
$ time bzr diff -r -5.. >/dev/null
real 1m21.836s
Creating a branch
-----------------
With git I chose "git checkout -b" instead of "git branch" because the
former also checks out the files as does "bzr branch". The bzr branch is
created inside the same shared repository so that the common objects are
shared.
Create new topic branch based on the head revision of the main
development branch:
$ time git checkout -b topic master >/dev/null
real 0m0.062s
$ time bzr branch trunk topic >/dev/null
real 0m7.249s
Create new topic branch based on earlier revision of main development
branch:
$ time git checkout -b topic master~4 >/dev/null
real 0m0.085s
$ time bzr branch -r -5 trunk topic >/dev/null
real 2m51.551s
Compare branches' commit histories
----------------------------------
In above benchmark I created branch 'topic' which is based on earlier
revision of main development branch. In this test I compared commands
which display commits that are missing from 'topic' branch compared to
the main development branch (four commits in total).
$ time git log topic..master >/dev/null
real 0m0.006s
$ time bzr missing --theirs-only ../trunk >/dev/null
real 18m25.173s
Annotate/blame a file (src/keymap.c)
------------------------------------
$ time git blame src/keymap.c >/dev/null
real 0m8.753s
$ time bzr blame src/keymap.c >/dev/null
real 0m58.296s
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
@ 2008-03-18 15:51 ` Lennart Borgman (gmail)
2008-03-18 16:05 ` dhruva
2008-03-18 16:19 ` Matthieu Moy
2008-03-18 16:02 ` Matthieu Moy
` (3 subsequent siblings)
4 siblings, 2 replies; 236+ messages in thread
From: Lennart Borgman (gmail) @ 2008-03-18 15:51 UTC (permalink / raw)
To: Teemu Likonen; +Cc: bazaar, emacs-devel
Teemu Likonen wrote:
> I did some benchmarking in git and bzr repositories of Emacs. Some
> numbers: 89711 revisions (by "git log --pretty=oneline | wc -l"), 2825
> files. Both repositories seem to have just linear history converted from
> CVS repo. Both have the same head revision which is
> 481c2a1e31f32c8aa0fb6d504575b75a18537788 (git) and
> revid:cvs-1:tsdh-20080318180244-lxbzttdnh6ecqbka (bzr).
>
> Repositories/branches are pulled from here:
> git: git://git.sv.gnu.org/emacs.git
> bzr: http://bzr.notengoamigos.org/emacs/trunk/
>
> My system is AMD Sempron 3000+ with 2 GB memory and it's running Debian
> GNU/Linux 4.0. I'm using the latest development versions of both git
> (1.5.5.rc0.6.gdeda) and bzr (1.4dev). I just measured with 'time'
> command how long it takes to run certain commands.
>
>
>
> Viewing history
> ---------------
>
>
> The complete history:
>
> $ time git log >/dev/null
> real 0m5.741s
>
> $ time bzr log >/dev/null
> real 3m15.708s
I no nothing about this, but it looks like the bzr developers thinks
that bzr is as fast as git:
http://bazaar-vcs.org/Benchmarks
It looks like something is wrong, I have absolutely no idea what. Was
someone here in contact with the bzr developers?
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
2008-03-18 15:51 ` Lennart Borgman (gmail)
@ 2008-03-18 16:02 ` Matthieu Moy
2008-03-18 16:33 ` dhruva
` (2 more replies)
2008-03-18 16:43 ` Andreas Schwab
` (2 subsequent siblings)
4 siblings, 3 replies; 236+ messages in thread
From: Matthieu Moy @ 2008-03-18 16:02 UTC (permalink / raw)
To: Teemu Likonen; +Cc: bazaar, emacs-devel
Teemu Likonen <tlikonen@iki.fi> writes:
> I just measured with 'time' command how long it takes to run certain
> commands.
Interesting benchmark, but what's missing is whether this is with hot
or cold cache. For example:
> $ time bzr log >/dev/null
> real 3m15.708s
I get a bit less than a minute here, and I don't think my machine is
4x faster than yours, so this was probably with cold cache.
An interesting measure is "best of 3" (run it 3 times, and take the
smallest).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 15:51 ` Lennart Borgman (gmail)
@ 2008-03-18 16:05 ` dhruva
2008-03-19 2:53 ` Richard Stallman
2008-03-29 1:00 ` Xavier Maillard
2008-03-18 16:19 ` Matthieu Moy
1 sibling, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-18 16:05 UTC (permalink / raw)
To: Lennart Borgman (gmail); +Cc: bazaar, emacs-devel
Hi,
I am using the latest bzr from their repository to access emacs repo.
I am not seeing any performance improvements. If we need to pull from
some other tree for doing performance tests, please let us know. I
even went to #bzr channel on irc.freenode.org to see if someone could
answer my questions, I did not see enough noise or response. Anyway, I
will try again, it might be due to timezone issues...
To the emacs maintainers and decision makers: What more information
is required to convince bzr is not the right tool at the present
moment? Every tests seems to reveal limitations in the tool compared
to available alternatives and yet I hear some say that the decision
has been made to use bzr. I have not missed out a single discussion
related to this thread and am quite verbosely involved. I personally
do not see a single mail which can tilt the scale in favor of bzr
except it is part of GNU project.
-dhruva
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 15:51 ` Lennart Borgman (gmail)
2008-03-18 16:05 ` dhruva
@ 2008-03-18 16:19 ` Matthieu Moy
2008-03-19 9:43 ` Teemu Likonen
1 sibling, 1 reply; 236+ messages in thread
From: Matthieu Moy @ 2008-03-18 16:19 UTC (permalink / raw)
To: Lennart Borgman (gmail); +Cc: bazaar, Teemu Likonen, emacs-devel
"Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> I no nothing about this, but it looks like the bzr developers thinks
> that bzr is as fast as git:
>
> http://bazaar-vcs.org/Benchmarks
>
> It looks like something is wrong, I have absolutely no idea what.
AAUI, the benchmarks were done importing tarballs, not history, and
therefore on a short-size history. I'd say "unrealisticly short-size
history" indeed.
> Was someone here in contact with the bzr developers?
Look carefully at the Cc: list ;-).
--
Matthieu
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:02 ` Matthieu Moy
@ 2008-03-18 16:33 ` dhruva
2008-03-18 18:41 ` Jonathan Corbet
2008-03-18 21:04 ` Eli Zaretskii
2008-03-18 17:11 ` Teemu Likonen
2008-03-18 17:43 ` Stefan Monnier
2 siblings, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-18 16:33 UTC (permalink / raw)
To: Matthieu Moy; +Cc: bazaar, Teemu Likonen, emacs-devel
Hi,
On Tue, Mar 18, 2008 at 9:32 PM, Matthieu Moy <Matthieu.Moy@imag.fr> wrote:
> Teemu Likonen <tlikonen@iki.fi> writes:
>
> > I just measured with 'time' command how long it takes to run certain
> > commands.
>
> Interesting benchmark, but what's missing is whether this is with hot
> or cold cache. For example:
>
>
> > $ time bzr log >/dev/null
> > real 3m15.708s
>
> I get a bit less than a minute here, and I don't think my machine is
> 4x faster than yours, so this was probably with cold cache.
>
> An interesting measure is "best of 3" (run it 3 times, and take the
> smallest).
>
dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
$ time bzr log -l 10 > :NUL
real 0m30.562s
user 0m0.015s
sys 0m0.000s
dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
$ time bzr log -l 10 > :NUL
real 0m34.250s
user 0m0.015s
sys 0m0.015s
dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
$ time bzr log -l 10 > :NUL
real 0m33.391s
user 0m0.015s
sys 0m0.000s
dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
$ time bzr log -l 10 --short > :NUL
real 0m19.828s
user 0m0.015s
sys 0m0.015s
dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
$ time bzr log -l 10 --short > :NUL
real 0m19.390s
user 0m0.015s
sys 0m0.000s
dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
$ time bzr log -l 10 --short > :NUL
real 0m18.421s
user 0m0.047s
sys 0m0.031s
dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
$ time bzr log -l 10 --short > :NUL
real 0m18.375s
user 0m0.015s
sys 0m0.000s
Even with 3 runs, I do not see any noticeable change in performance. I
am running the tests on emacs repo. I am running all tests on M$-XP
box (lenovo T61 series with Intel Centrino Pro, 1Gb RAM).
How do I get rid of cache if I have to restart the tests? I plan to
analyze the '--lsprof' output to see if there is different code path
and the so called hot/cold cache making any difference.
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
2008-03-18 15:51 ` Lennart Borgman (gmail)
2008-03-18 16:02 ` Matthieu Moy
@ 2008-03-18 16:43 ` Andreas Schwab
2008-03-18 19:19 ` Teemu Likonen
2008-03-18 20:22 ` James Westby
2008-03-19 11:37 ` Emacs repository benchmark: bzr and git (rerun) Teemu Likonen
4 siblings, 1 reply; 236+ messages in thread
From: Andreas Schwab @ 2008-03-18 16:43 UTC (permalink / raw)
To: Teemu Likonen; +Cc: bazaar, emacs-devel
Teemu Likonen <tlikonen@iki.fi> writes:
> I did some benchmarking in git and bzr repositories of Emacs. Some
> numbers: 89711 revisions (by "git log --pretty=oneline | wc -l"), 2825
> files. Both repositories seem to have just linear history converted from
> CVS repo. Both have the same head revision which is
> 481c2a1e31f32c8aa0fb6d504575b75a18537788 (git) and
> revid:cvs-1:tsdh-20080318180244-lxbzttdnh6ecqbka (bzr).
The git repository at savannah has more revisions because it has the
multi-tty arch history imported into it. It also contains many merges,
although not in recent history.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 9:17 ` Andreas Schwab
2008-03-18 10:00 ` dhruva
@ 2008-03-18 16:50 ` Stefan Monnier
2008-03-18 18:15 ` Juanma Barranquero
2008-03-29 1:00 ` Xavier Maillard
2 siblings, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-18 16:50 UTC (permalink / raw)
To: Andreas Schwab; +Cc: Karl Fogel, Chong Yidong, esr, Emacs Devel
>> All of the DVCSs seem good. No one marshalled any compelling arguments
>> in favor of one versus the other on technical grounds, and all other
>> things being equal, RMS (and maybe some others, perhaps including Yidong
>> and Stefan?) preferred bzr because it is a GNU project.
> In its current form bzr is not usable for a project of the size of Emacs.
I'm currently using Bzr to maintain my private hacking branch (used to
use Arch until now for that). I use it with Jason's Bzr mirror of the
CVS repository.
The performance is indeed problematic on several operations.
Also the Bzr mirror has some shortcomings currently.
So, currently I'm waiting to see how quickly the problematic performance
problems get resolved and how the mirror's shortcomings get resolved.
I'd also like to hear from people working on other platforms (Macs OS
X, Windows) to make sure that the Bzr mirror can be used there as well.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:02 ` Matthieu Moy
2008-03-18 16:33 ` dhruva
@ 2008-03-18 17:11 ` Teemu Likonen
2008-03-18 17:43 ` Stefan Monnier
2 siblings, 0 replies; 236+ messages in thread
From: Teemu Likonen @ 2008-03-18 17:11 UTC (permalink / raw)
To: Matthieu Moy; +Cc: bazaar, emacs-devel
Matthieu Moy kirjoitti:
> > $ time bzr log >/dev/null
> > real 3m15.708s
>
> I get a bit less than a minute here, and I don't think my machine is
> 4x faster than yours, so this was probably with cold cache.
>
> An interesting measure is "best of 3" (run it 3 times, and take the
> smallest).
Don't know what I'm doing wrong. I just ran "time bzr log >/dev/null"
five times in a row and I always get more than three minutes:
3m1.999s
3m6.945s
3m0.548s
3m5.149s
3m5.908s
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:02 ` Matthieu Moy
2008-03-18 16:33 ` dhruva
2008-03-18 17:11 ` Teemu Likonen
@ 2008-03-18 17:43 ` Stefan Monnier
2008-03-18 18:20 ` Juanma Barranquero
2 siblings, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-18 17:43 UTC (permalink / raw)
To: Matthieu Moy; +Cc: bazaar, emacs-devel
>> $ time bzr log >/dev/null
>> real 3m15.708s
> I get a bit less than a minute here, and I don't think my machine is
> 4x faster than yours, so this was probably with cold cache.
I don't think it matters: 1 minute is too long as well.
I don't care if Bzr is slower or faster than Git, but in order to switch
to Bzr, we need it to be "fast enough". Currently it is not. At the
very least the "bzr diff -r <something>" should not take more than
a couple seconds and it should be possible to get the "bzr status" of
a file instantaneously.
Stefan
PS: and now for something completely different: is there a Texinfo
version of the Bazaar reference manual?
PPS: If we want to compare Bzr to Git, we may also want to look at the
repository size: currently, it looks like Git's version of the Emacs
repository weighs in around 200MB, while Bzr's version hovers
around 300MB.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 16:50 ` Stefan Monnier
@ 2008-03-18 18:15 ` Juanma Barranquero
2008-03-20 14:00 ` Stefan Monnier
0 siblings, 1 reply; 236+ messages in thread
From: Juanma Barranquero @ 2008-03-18 18:15 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Emacs Devel
On Tue, Mar 18, 2008 at 5:50 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
> I'd also like to hear from people working on other platforms (Macs OS
> X, Windows) to make sure that the Bzr mirror can be used there as well.
I've done a bit of testing with Jason Earl's mirror, using bzr 1.2.0
on Windows XP.
It is slow. As I already reported,
bzr log --limit=30 --short lisp\ChangeLog
consumed all available memory and had to be killed. Also surprising,
using Jason's shared repository setup example, a simple
bzr merge --pull
from the sandbox branch takes ten or more seconds, and that's a purely local op.
Juanma
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 17:43 ` Stefan Monnier
@ 2008-03-18 18:20 ` Juanma Barranquero
0 siblings, 0 replies; 236+ messages in thread
From: Juanma Barranquero @ 2008-03-18 18:20 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, emacs-devel
On Tue, Mar 18, 2008 at 6:43 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
> PPS: If we want to compare Bzr to Git, [...]
Oh, but we don't.
Juanma
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:33 ` dhruva
@ 2008-03-18 18:41 ` Jonathan Corbet
2008-03-19 1:40 ` dhruva
2008-03-18 21:04 ` Eli Zaretskii
1 sibling, 1 reply; 236+ messages in thread
From: Jonathan Corbet @ 2008-03-18 18:41 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, Teemu Likonen, emacs-devel
dhruva <dhruvakm@gmail.com> wrote:
> How do I get rid of cache if I have to restart the tests? I plan to
> analyze the '--lsprof' output to see if there is different code path
> and the so called hot/cold cache making any difference.
Assuming you're running on a Linux kernel:
# sync
# echo 3 > /proc/sys/vm/drop_caches
That dumps everything which does not require writeback, leaving you with
a quite cold cache.
jon
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:43 ` Andreas Schwab
@ 2008-03-18 19:19 ` Teemu Likonen
0 siblings, 0 replies; 236+ messages in thread
From: Teemu Likonen @ 2008-03-18 19:19 UTC (permalink / raw)
To: bazaar; +Cc: Andreas Schwab, emacs-devel
Andreas Schwab kirjoitti:
> Teemu Likonen <tlikonen@iki.fi> writes:
> > I did some benchmarking in git and bzr repositories of Emacs. Some
> > numbers: 89711 revisions (by "git log --pretty=oneline | wc -l"),
> > 2825 files. Both repositories seem to have just linear history
> > converted from CVS repo. Both have the same head revision which is
> > 481c2a1e31f32c8aa0fb6d504575b75a18537788 (git) and
> > revid:cvs-1:tsdh-20080318180244-lxbzttdnh6ecqbka (bzr).
>
> The git repository at savannah has more revisions because it has the
> multi-tty arch history imported into it. It also contains many
> merges, although not in recent history.
Oh, I didn't notice that. Indeed, the Emacs bzr repo is 2031 commits
lighter. In theory this difference seems like a disadvantage to git in
this test. In practice it's probably not because the length of history
does not seem to have much effect on git's performance. Anyway, the
main point was bzr, and git was there just to give some perspective
(for me personally too).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 2:13 ` dhruva
2008-03-18 4:03 ` Karl Fogel
@ 2008-03-18 19:27 ` Richard Stallman
2008-03-18 20:05 ` Andreas Schwab
` (3 more replies)
1 sibling, 4 replies; 236+ messages in thread
From: Richard Stallman @ 2008-03-18 19:27 UTC (permalink / raw)
To: dhruva; +Cc: esr, cyd, monnier, emacs-devel
This question is over and decided.
We will use GNU Bzr, because it is a GNU package.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 4:03 ` Karl Fogel
2008-03-18 5:00 ` dhruva
2008-03-18 9:17 ` Andreas Schwab
@ 2008-03-18 19:31 ` Mike Mattie
2 siblings, 0 replies; 236+ messages in thread
From: Mike Mattie @ 2008-03-18 19:31 UTC (permalink / raw)
To: emacs-devel; +Cc: Karl Fogel
[-- Attachment #1: Type: text/plain, Size: 3096 bytes --]
On Tue, 18 Mar 2008 00:03:09 -0400
Karl Fogel <kfogel@red-bean.com> wrote:
> dhruva <dhruvakm@gmail.com> writes:
> > With lengthy discussions having taken place on this SCM issue, what
> > are we waiting for? Are there really any concrete plans to move to a
> > dSCM or are we just wasting talking about features and shortcomings
> > of each tool. Any outcome of ESR study?
>
> I think you may have missed the news :-).
>
> We decided on bzr, which in practice seems to mean "some people are
> seriously testing bzr, and once we have a good conversion and are
> satisfied we can get work done, someone will install it on savannah
> and that repository will be the new master".
>
> All of the DVCSs seem good. No one marshalled any compelling
> arguments in favor of one versus the other on technical grounds, and
> all other things being equal, RMS (and maybe some others, perhaps
> including Yidong and Stefan?) preferred bzr because it is a GNU
> project.
All of them seem good from their press; until you use them and realize
some scale, most don't. When darcs was put forward as a candidate it
was clear that there was far more googling and e-mailing going on
than testing.
Now that people are actually trying them out some reality will filter back in.
You can tell that progress is being made because the strange metaphors, furious
hand-waving, and war stories have been replaced with _numbers_, and some sad faces.
There are three choices from here:
1. Backup, demand real testing and trails, make a new choice. (not very
political)
2. The choice is already made, so fix bzr. May involve a complete re-design
if the algorithms/structures are not designed to efficiently process common
case access patterns (log etc.).
3. Let the issue die quietly because there is not enough man-power to divert
from Emacs to bzr (who wants to volunteer?), continue using cvs
indefinitely without rescinding the declaration to use bzr.
The GNU project is hoping for #2 as they want a real contender to git.
The numbers now being produced show why very clearly.
For the GNU project that may be a very strategic choice in hind-sight
if #2 pans out.
Nobody has been press-ganged so #2 is really not "terrible",
but Emacs has clearly been volunteered for bzr work, or the conversion
has been postponed indefinitely.
It's not my decision, and I am not making a position here either way.
I just hope putting the three choices in plain print will save some
electricity and mental band-with.
Anyone who really groks the three options I wrote won't reply, because
it is simply the state of things, and how things turns out is a individual
choice for each developer of how they will spend their time, which is
why GNU does things like #2.
> The above is a summary of what I take to be the current state of
> things. My personal opinions: I'm also happy with bzr, and would be
> equally happy with any of the usual suspects among free software
> DVCS. I just hope we can switch the master soon.
>
> -Karl
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 19:27 ` Richard Stallman
@ 2008-03-18 20:05 ` Andreas Schwab
2008-03-18 20:26 ` Thien-Thi Nguyen
2008-03-20 1:04 ` Jonathan Lange
2008-03-18 20:58 ` Brian Cully
` (2 subsequent siblings)
3 siblings, 2 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-18 20:05 UTC (permalink / raw)
To: rms; +Cc: esr, cyd, monnier, emacs-devel
Richard Stallman <rms@gnu.org> writes:
> This question is over and decided.
> We will use GNU Bzr, because it is a GNU package.
That is a very bad move. That will mean that nobody will be able to
effectively work on emacs any more.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
` (2 preceding siblings ...)
2008-03-18 16:43 ` Andreas Schwab
@ 2008-03-18 20:22 ` James Westby
2008-03-19 11:37 ` Emacs repository benchmark: bzr and git (rerun) Teemu Likonen
4 siblings, 0 replies; 236+ messages in thread
From: James Westby @ 2008-03-18 20:22 UTC (permalink / raw)
To: Teemu Likonen; +Cc: bazaar, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 4587 bytes --]
On Tue, 2008-03-18 at 17:43 +0200, Teemu Likonen wrote:
> I did some benchmarking in git and bzr repositories of Emacs. Some
> numbers: 89711 revisions (by "git log --pretty=oneline | wc -l"), 2825
> files. Both repositories seem to have just linear history converted from
> CVS repo. Both have the same head revision which is
> 481c2a1e31f32c8aa0fb6d504575b75a18537788 (git) and
> revid:cvs-1:tsdh-20080318180244-lxbzttdnh6ecqbka (bzr).
>
Hi,
Thanks for the concrete numbers that we can work from.
So, I hacked up a quick plugin to output logs in a flat style like
git. I've attached it to this mail. You can install it by dropping
it in to ~/.bazaar/plugins.
It is totally unintegrated with bzr's log framework. I plan on
rectifying that and proposing it for inclusion. It also has
some nasty UI warts like using --end revid to limit the
revisions that you want to see to ones that are not that
revid or the parents of it. This means you can't do things
like bzr flatlog -r-100..
I include the numbers from that inline with yours
>
> Viewing history
> ---------------
>
>
> The complete history:
>
> $ time git log >/dev/null
> real 0m5.741s
>
> $ time bzr log >/dev/null
> real 3m15.708s
>
bzr flatlog > /dev/null 45.17s user 0.75s system 97% cpu 46.883 total
>
> Last 100 revisions:
>
> $ time git log -100 >/dev/null
> real 0m0.011s
>
> $ time bzr log -l100 >/dev/null
> real 2m10.270s
>
bzr flatlog -l100 > /dev/null 12.11s user 0.32s system 97% cpu 12.714
total
>
> Last 10 revisions:
>
> $ time git log -10 >/dev/null
> real 0m0.007s
>
> $ time bzr log -l10 >/dev/null
> real 2m9.163s
>
bzr flatlog -l10 > /dev/null 12.18s user 0.25s system 98% cpu 12.582
total
I can also suggest a workaround for anyone that is using bzr and wants
to speed up log further while we work on it.
If you edit ~/.bazaar/bazaar.conf and add
[ALIASES]
flatlog = --end cvs-1:bastien1-20080217010841-op363t09ccs7pais
you can get
bzr flatlog --end cvs-1:bastien1-20080217010841-op363t09ccs7pais
> /dev/null 0.77s user 0.08s system 96% cpu 0.876 total
and still have 1000 revisions to look at.
I'll work on getting -r properly integrated which means you could
have this alias set at all times, and then if you needed full
history you could do
bzr flatlog -r1..
>
> Creating a branch
> -----------------
>
> With git I chose "git checkout -b" instead of "git branch" because the
> former also checks out the files as does "bzr branch". The bzr branch is
> created inside the same shared repository so that the common objects are
> shared.
bzr creates a second working tree, git replaces your first.
>
>
> Create new topic branch based on the head revision of the main
> development branch:
>
> $ time git checkout -b topic master >/dev/null
> real 0m0.062s
>
> $ time bzr branch trunk topic >/dev/null
> real 0m7.249s
to compare getting the second working tree you can use
git clone emacs temp2 1.70s user 1.29s system 31% cpu 9.395 total
(it hardlinks the objects rather than just re-using them as bzr does,
so it's still not the same)
However this is a bit silly, as you are just comparing the usual
ways to get a new branch in that particular VCS.
It is possible to emulate the git way using a couple of bzr commands
if you prefer to work in one directory with one working tree. I don't
have benchmark numbers for that currently though I'm afraid.
>
>
> Create new topic branch based on earlier revision of main development
> branch:
>
> $ time git checkout -b topic master~4 >/dev/null
> real 0m0.085s
>
> $ time bzr branch -r -5 trunk topic >/dev/null
> real 2m51.551s
>
There was a patch proposed a couple of days to tackle an efficiency
operation in exactly this command.
>
>
> Compare branches' commit histories
> ----------------------------------
>
> In above benchmark I created branch 'topic' which is based on earlier
> revision of main development branch. In this test I compared commands
> which display commits that are missing from 'topic' branch compared to
> the main development branch (four commits in total).
>
>
> $ time git log topic..master >/dev/null
> real 0m0.006s
>
> $ time bzr missing --theirs-only ../trunk >/dev/null
> real 18m25.173s
>
An inefficiency was also highlighted here a couple of days ago. I think
something was proposed that we could switch this and other commands
to that would speed them up greatly.
If you want to talk about bzr's performance or features I will be happy
to do so, but please drop the emacs list from the discussion.
Thanks,
James
[-- Attachment #2: flatlog.py --]
[-- Type: text/x-python, Size: 6132 bytes --]
from bzrlib import (
branch,
builtins,
commands,
errors,
revision as _mod_revision,
option,
osutils,
)
class cmd_flatlog(commands.Command):
"""Output the log in a flat format."""
takes_options = [
option.Option('limit',
short_name='l',
help='Limit the output to the first N revisions.',
argname='N',
type=builtins._parse_limit,
),
option.Option('start',
type=str,
),
option.Option('end',
type=str,
),
option.Option('timezone',
type=str,
help="Display timezone as local, original or utc",
),
option.Option('forward',
help="Display the revisions from oldest to newest",
),
]
def iter_all_history_topo_sorted(self, repo, revision_id,
limit=None, end=None, no_merges=False):
if revision_id in (None, _mod_revision.NULL_REVISION):
return
if revision_id == end:
return
if limit is not None:
if limit <= 0:
raise errors.BzrCommandError("limit option must be positive")
if limit == 1:
yield revision_id
return
to_process = [revision_id]
indegree = {revision_id:0}
graph = repo.get_graph()
parents_map = {}
no_merge = True
_limit = limit
while to_process:
node = to_process.pop(0)
parent_map = graph.get_parent_map([node])
if node not in parent_map: #ghost
continue
parents = parent_map[node]
parents_map[node] = parents
for parent in parents:
if parent == end:
continue
done = indegree.setdefault(parent, 0)
indegree[parent] += 1
if done == 0:
to_process.append(parent)
to_process = [revision_id]
while to_process:
node = to_process.pop(0)
parents = parents_map[node]
if not no_merges or len(parents) < 2:
yield node
if limit is not None:
limit -= 1
if limit == 0:
return
for parent in parents:
if parent == end or parent is _mod_revision.NULL_REVISION:
continue
if parent in parents_map: #not ghost
indegree[parent] -= 1
if indegree[parent] == 0:
to_process.append(parent)
def iter_all_history_topo_sorted_forward(self, repo,
revision_id, end=None, limit=None, no_merges=False):
if revision_id in (None, _mod_revision.NULL_REVISION):
return
if revision_id == end:
return
if limit is not None:
if limit <= 0:
raise errors.BzrCommandError("limit option must be positive")
to_process = [revision_id]
graph = repo.get_graph()
revs = set()
while to_process:
node = to_process.pop()
parent_map = graph.get_parent_map([node])
if node not in parent_map: #ghost
continue
revs.add(node)
parents = parent_map[node]
for parent in parents:
if parent is not _mod_revision.NULL_REVISION and parent not in revs:
to_process.append(parent)
for rev_id in graph.iter_topo_order(revs):
if no_merges:
parent_map = graph.get_parent_map([node])
if len(parent_map[node]) > 1:
continue
yield rev_id
if limit is not None:
limit -= 1
if limit == 0:
return
def iter_revs(self, repo, start, end, limit, forward, no_merges):
num = 9
i = 0
rev_ids = []
if forward:
rev_generator = self.iter_all_history_topo_sorted_forward(repo,
start, limit=limit, end=end, no_merges=no_merges)
else:
rev_generator = self.iter_all_history_topo_sorted(repo, start,
limit=limit, end=end, no_merges=no_merges)
for rev_id in rev_generator:
rev_ids.append(rev_id)
i += 1
if i == num:
revs = repo.get_revisions(rev_ids)
for rev in revs:
yield rev
i = 0
rev_ids = []
num = min(int(num * 1.5), 200)
revs = repo.get_revisions(rev_ids)
for rev in revs:
yield rev
def run(self, limit=None, start=None, end=None, timezone=None,
forward=False, no_merges=False):
b = branch.Branch.open_containing('.')[0]
if timezone is None:
timezone = "original"
if (start is not None or end is not None) and forward:
raise errors.BzrCommandError("--forward and --start and --end are not supported yet")
repo = b.repository
repo.lock_read()
try:
if start is None:
start = b.last_revision()
for rev in self.iter_revs(repo, start, end, limit, forward, no_merges):
self.outf.write("commit %s\nAuthor: %s\nDate: %s\n\n" % (rev.revision_id,
rev.get_apparent_author(), osutils.format_date(rev.timestamp,
rev.timezone or 0, timezone)))
if not rev.message:
self.outf.write(" (no message)\n")
else:
for l in rev.message.split('\n'):
self.outf.write(" %s\n" % l)
self.outf.write("\n")
finally:
repo.unlock()
commands.register_command(cmd_flatlog)
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 20:05 ` Andreas Schwab
@ 2008-03-18 20:26 ` Thien-Thi Nguyen
2008-03-22 4:23 ` Michael Olson
2008-03-20 1:04 ` Jonathan Lange
1 sibling, 1 reply; 236+ messages in thread
From: Thien-Thi Nguyen @ 2008-03-18 20:26 UTC (permalink / raw)
To: Andreas Schwab; +Cc: esr, cyd, emacs-devel, rms, monnier
() Andreas Schwab <schwab@suse.de>
() Tue, 18 Mar 2008 21:05:01 +0100
That is a very bad move. That will mean that nobody
will be able to effectively work on emacs any more.
It's a bad move, but not because nobody will be able to
effectively work on emacs any more (an exaggeration), but
rather because to effectively work on emacs, people will
have to spend time setting up, testing, and debugging
various coping mechanisms. Big time/effort sink.
On the other hand, if we see something like:
| ttn <-> git <------------> git <-> jrhacker : high freq
| emacs emacs : changes
| ^ ^
| | |
| v v
| bzr <------------> bzr : low freq
| emacs emacs : changes
evolve, then maybe that's not so bad.
thi
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 19:27 ` Richard Stallman
2008-03-18 20:05 ` Andreas Schwab
@ 2008-03-18 20:58 ` Brian Cully
2008-03-18 21:13 ` Mike Mattie
2008-03-18 21:45 ` Stefan Monnier
2008-03-19 0:12 ` Johannes Weiner
3 siblings, 1 reply; 236+ messages in thread
From: Brian Cully @ 2008-03-18 20:58 UTC (permalink / raw)
To: rms; +Cc: esr, cyd, monnier, emacs-devel
On 18-Mar-2008, at 15:27, Richard Stallman wrote:
> This question is over and decided.
> We will use GNU Bzr, because it is a GNU package.
I, for one, welcome another Emacs branch due to politicking. XEmacs
doesn't cause nearly enough grief already.
-bjc
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:33 ` dhruva
2008-03-18 18:41 ` Jonathan Corbet
@ 2008-03-18 21:04 ` Eli Zaretskii
1 sibling, 0 replies; 236+ messages in thread
From: Eli Zaretskii @ 2008-03-18 21:04 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, tlikonen, Matthieu.Moy, emacs-devel
> Date: Tue, 18 Mar 2008 22:03:46 +0530
> From: dhruva <dhruvakm@gmail.com>
> Cc: bazaar@lists.canonical.com, Teemu Likonen <tlikonen@iki.fi>,
> emacs-devel@gnu.org
>
> dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
> $ time bzr log -l 10 --short > :NUL
>
> real 0m18.421s
> user 0m0.047s
> sys 0m0.031s
>
> dhruva@dhruva-lxp ~/stub/repo/bzr/emacs/trunk
> $ time bzr log -l 10 --short > :NUL
>
> real 0m18.375s
> user 0m0.015s
> sys 0m0.000s
>
>
> Even with 3 runs, I do not see any noticeable change in performance. I
> am running the tests on emacs repo. I am running all tests on M$-XP
> box (lenovo T61 series with Intel Centrino Pro, 1Gb RAM).
>
> How do I get rid of cache if I have to restart the tests? I plan to
> analyze the '--lsprof' output to see if there is different code path
> and the so called hot/cold cache making any difference.
I'm just guessing, but judging from your results, it doesn't look like
the times are I/O-bound, and so the cold/hot cache issue is not an
important factor with bzr, at least on MS-Windows. With I/O-bound
operations, there's a significant difference (factors of 5 to 20)
between the first and the second invocations, which is not the case
here.
Also, I'm guessing that the user/system times are irrelevant because
bzr invokes subsidiary processes that do the actual work (and the
Windows version of system calls used by `time' does not cover time
spent in child processes, unlike the Posix system calls). That is the
only way I can understand the startling difference between the elapsed
time and the sum of system+user time. So it's hard to tell where does
bzr spend most of its time from these numbers.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 20:58 ` Brian Cully
@ 2008-03-18 21:13 ` Mike Mattie
0 siblings, 0 replies; 236+ messages in thread
From: Mike Mattie @ 2008-03-18 21:13 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 434 bytes --]
On Tue, 18 Mar 2008 16:58:37 -0400
Brian Cully <bcully@gmail.com> wrote:
> On 18-Mar-2008, at 15:27, Richard Stallman wrote:
> > This question is over and decided.
> > We will use GNU Bzr, because it is a GNU package.
>
> I, for one, welcome another Emacs branch due to politicking.
> XEmacs doesn't cause nearly enough grief already.
That in itself is a political statement. interesting delimna no ?
> -bjc
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 19:27 ` Richard Stallman
2008-03-18 20:05 ` Andreas Schwab
2008-03-18 20:58 ` Brian Cully
@ 2008-03-18 21:45 ` Stefan Monnier
2008-03-18 22:02 ` Jonathan Lange
2008-03-18 23:18 ` Chong Yidong
2008-03-19 0:12 ` Johannes Weiner
3 siblings, 2 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-18 21:45 UTC (permalink / raw)
To: rms; +Cc: esr, cyd, emacs-devel
> This question is over and decided.
> We will use GNU Bzr, because it is a GNU package.
The current performance of Bzr is not good enough when used on the
Emacs repository.
If those performance problems can be resolved in a reasonable amount of
time, fine. But otherwise, we may have to use some other system, at
least temporarily.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 21:45 ` Stefan Monnier
@ 2008-03-18 22:02 ` Jonathan Lange
2008-03-19 1:21 ` Stefan Monnier
2008-03-18 23:18 ` Chong Yidong
1 sibling, 1 reply; 236+ messages in thread
From: Jonathan Lange @ 2008-03-18 22:02 UTC (permalink / raw)
To: Stefan Monnier; +Cc: esr, cyd, rms, emacs-devel
On Wed, Mar 19, 2008 at 8:45 AM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
> > This question is over and decided.
> > We will use GNU Bzr, because it is a GNU package.
>
> The current performance of Bzr is not good enough when used on the
> Emacs repository.
>
Concretely, in order to be good enough, which operations need to
improve and by how much?
> If those performance problems can be resolved in a reasonable amount of
> time, fine.
Then let's try to do that.
jml
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 21:45 ` Stefan Monnier
2008-03-18 22:02 ` Jonathan Lange
@ 2008-03-18 23:18 ` Chong Yidong
2008-03-18 23:46 ` Nick Roberts
2008-03-19 0:13 ` Thomas Lord
1 sibling, 2 replies; 236+ messages in thread
From: Chong Yidong @ 2008-03-18 23:18 UTC (permalink / raw)
To: Stefan Monnier; +Cc: esr, rms, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> This question is over and decided.
>> We will use GNU Bzr, because it is a GNU package.
>
> The current performance of Bzr is not good enough when used on the
> Emacs repository.
>
> If those performance problems can be resolved in a reasonable amount of
> time, fine. But otherwise, we may have to use some other system, at
> least temporarily.
We could, y'know, stick with CVS.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 23:18 ` Chong Yidong
@ 2008-03-18 23:46 ` Nick Roberts
2008-03-19 0:13 ` Thomas Lord
1 sibling, 0 replies; 236+ messages in thread
From: Nick Roberts @ 2008-03-18 23:46 UTC (permalink / raw)
To: Chong Yidong; +Cc: esr, emacs-devel, Stefan Monnier, rms
> >> This question is over and decided.
> >> We will use GNU Bzr, because it is a GNU package.
> >
> > The current performance of Bzr is not good enough when used on the
> > Emacs repository.
> >
> > If those performance problems can be resolved in a reasonable amount of
> > time, fine. But otherwise, we may have to use some other system, at
> > least temporarily.
>
> We could, y'know, stick with CVS.
This is, indeed, the only solution within the given constraints: we use CVS
until Bzr meets the performance requirements for use with the Emacs repository.
I certainly don't want to learn how to use a third VCS and, in practice, if
we used one temporarily, people would be reluctant to move away from it.
--
Nick http://www.inet.net.nz/~nickrob
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 19:27 ` Richard Stallman
` (2 preceding siblings ...)
2008-03-18 21:45 ` Stefan Monnier
@ 2008-03-19 0:12 ` Johannes Weiner
2008-03-26 7:56 ` David Kastrup
3 siblings, 1 reply; 236+ messages in thread
From: Johannes Weiner @ 2008-03-19 0:12 UTC (permalink / raw)
To: rms; +Cc: esr, cyd, monnier, emacs-devel
Hi,
Richard Stallman <rms@gnu.org> writes:
> This question is over and decided.
> We will use GNU Bzr, because it is a GNU package.
Wow, that sounds almost democratic.
Hannes
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 23:18 ` Chong Yidong
2008-03-18 23:46 ` Nick Roberts
@ 2008-03-19 0:13 ` Thomas Lord
2008-03-19 0:17 ` Mike Mattie
1 sibling, 1 reply; 236+ messages in thread
From: Thomas Lord @ 2008-03-19 0:13 UTC (permalink / raw)
To: Chong Yidong; +Cc: esr, emacs-devel, Stefan Monnier, rms
Chong Yidong wrote:
> We could, y'know, stick with CVS.
>
I'm not so sure that that's a crazy idea.
You could add in a couple of shell scripts to do
fancy merging tricks and keep track of the history
of "patches" submitted and applied, keeping all of
that new meta-data under CVS.
Contributors could use git if they want, as long as
they don't mind using some of those scripts to prepare
patches to submit.
You get the "dvcs" effect that way, without changing
the vcs....
If it's done in simple and clean ways then people
could add on features like web browsing interfaces
and "log" reporting features.
-t
>
>
>
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-19 0:13 ` Thomas Lord
@ 2008-03-19 0:17 ` Mike Mattie
2008-03-19 1:14 ` Thomas Lord
0 siblings, 1 reply; 236+ messages in thread
From: Mike Mattie @ 2008-03-19 0:17 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 2172 bytes --]
On Tue, 18 Mar 2008 17:13:23 -0700
Thomas Lord <lord@emf.net> wrote:
> Chong Yidong wrote:
> > We could, y'know, stick with CVS.
> >
>
>
> I'm not so sure that that's a crazy idea.
>
> You could add in a couple of shell scripts to do
> fancy merging tricks and keep track of the history
> of "patches" submitted and applied, keeping all of
> that new meta-data under CVS.
>
> Contributors could use git if they want, as long as
> they don't mind using some of those scripts to prepare
> patches to submit.
>
> You get the "dvcs" effect that way, without changing
> the vcs....
>
> If it's done in simple and clean ways then people
> could add on features like web browsing interfaces
> and "log" reporting features.
If you were going to invest your time and skills into hacking on a VCS do you
really want to choose coding out-of-tree scripts for CVS ?
Any ideas that would retro-fit DVCS features onto archaic VCS systems
would be more effective for Emacs in vc I think. From there you could
at least expect a normalized API for common VCS operations and a larger
audience for your features.
It seems better to work on a better future for a modern VCS system, all things equal,
than working on arranging the flowers at CVS's funeral.
Your analysis from the Shift Selection thread is meticulous IMHO, this must be
a floater (idea).
btw, I have coded some large shell scripts regretfully. Even basic string operations are
not simple ; hence perl. I doubt that any fancy merging tricks can emerge in sane
form without writing a FOO -> bash compiler.
The auto-tools suite is essentially useful, but I doubt anyone is thrilled by
maintaining autoconf.
even if you get daring and use co-processes to leverage an external "to bash"
translator to feedback complex semantics into your bash core, many,
if not most programs cannot read from pipes without SIGPIPE. The mmap assumption
is almost universal these days.
If you need any more horror stories along these lines, I will share them privately :)
>
> -t
>
>
>
>
> >
> >
> >
>
>
>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-19 0:17 ` Mike Mattie
@ 2008-03-19 1:14 ` Thomas Lord
0 siblings, 0 replies; 236+ messages in thread
From: Thomas Lord @ 2008-03-19 1:14 UTC (permalink / raw)
To: Mike Mattie; +Cc: emacs-devel
Mike Mattie wrote:
> If you were going to invest your time and skills into hacking on a VCS do you
> really want to choose coding out-of-tree scripts for CVS ?
>
The question of making short-term investments of my time
in this area has been weighing heavily on my mind, lately.
The original Arch took like 4-6 weeks to code and, now, years
later, I know a lot more. So I'm trying to think of what I might
do in this area.
I don't think I want to make any programs that are CVS-specific
in any way -- but I am thinking that the "dcvs" needs of a project
like Emacs can possibly be done in a way that doesn't make it
necessary to first move away from CVS. Desirable to eventually
move away, absolutely -- but i'm not sure that good dcvs features
need to force that migration to happen right away.
> Any ideas that would retro-fit DVCS features onto archaic VCS systems
> would be more effective for Emacs in vc I think. From there you could
> at least expect a normalized API for common VCS operations and a larger
> audience for your features.
>
> It seems better to work on a better future for a modern VCS system, all things equal,
> than working on arranging the flowers at CVS's funeral.
>
>
Sure. I'm not proposing to invest in CVS' future. I'm suggesting
working on dvcs needs with the constraint that it's desirable to meet
dcvs needs without *forcing* a migration away from CVS (or any
other system). It's best, to the extent possible, for dvcs features to
be independent of the vcs system used by each programmer.
> Your analysis from the Shift Selection thread is meticulous IMHO, this must be
> a floater (idea).
>
>
The VCS stuff is, *yes* a "floater" speculative idea. The shift-select
stuff
is, ahem, well... as you say, thank you.
I'm sketchy about the concept of trying to muster volunteer labor.
But I'm a little bit hooked in interest on the dcvs woes here.
I'm just wondering what makes sense to try to do here. Whether
I can mount a quick and dirty "Arch 2.0" push to any good effect.
-t
> btw, I have coded some large shell scripts regretfully. Even basic string operations are
> not simple ; hence perl. I doubt that any fancy merging tricks can emerge in sane
> form without writing a FOO -> bash compiler.
>
> The auto-tools suite is essentially useful, but I doubt anyone is thrilled by
> maintaining autoconf.
>
> even if you get daring and use co-processes to leverage an external "to bash"
> translator to feedback complex semantics into your bash core, many,
> if not most programs cannot read from pipes without SIGPIPE. The mmap assumption
> is almost universal these days.
>
> If you need any more horror stories along these lines, I will share them privately :)
>
>
>> -t
>>
>>
>>
>>
>>
>>>
>>>
>>
>>
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 22:02 ` Jonathan Lange
@ 2008-03-19 1:21 ` Stefan Monnier
0 siblings, 0 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-19 1:21 UTC (permalink / raw)
To: Jonathan Lange; +Cc: esr, cyd, rms, emacs-devel
>> > This question is over and decided.
>> > We will use GNU Bzr, because it is a GNU package.
>> The current performance of Bzr is not good enough when used on the
>> Emacs repository.
> Concretely, in order to be good enough, which operations need to
> improve and by how much?
I've posted those I bumped into and consider serious, as bug reports on
the Bzr bug tracker.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 18:41 ` Jonathan Corbet
@ 2008-03-19 1:40 ` dhruva
0 siblings, 0 replies; 236+ messages in thread
From: dhruva @ 2008-03-19 1:40 UTC (permalink / raw)
To: Jonathan Corbet; +Cc: bazaar, emacs-devel
Hi,
On Wed, Mar 19, 2008 at 12:11 AM, Jonathan Corbet <corbet@lwn.net> wrote:
> dhruva <dhruvakm@gmail.com> wrote:
>
> > How do I get rid of cache if I have to restart the tests? I plan to
> > analyze the '--lsprof' output to see if there is different code path
> > and the so called hot/cold cache making any difference.
>
> Assuming you're running on a Linux kernel:
I am on M$ (XP). So, the cache that has been referred so far is the
operating system virtual memory manager caching and not something
specific to bzr. If this is the case, then the same caching concepts
will work for any application using VM. Is bzr coded differently to
make use of such a feature in a different way? I am interested in
exploring this to find out if it can help performance or just a myth.
-dhruva
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:05 ` dhruva
@ 2008-03-19 2:53 ` Richard Stallman
2008-03-27 1:32 ` Jonathan Lange
2008-03-29 1:00 ` Xavier Maillard
1 sibling, 1 reply; 236+ messages in thread
From: Richard Stallman @ 2008-03-19 2:53 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, tlikonen, lennart.borgman, emacs-devel
To the emacs maintainers and decision makers: What more information
is required to convince bzr is not the right tool at the present
moment?
This decision is not a decision for the present moment. It is a long
term decision.
So it would be better to wait a few months while Bzr developers
improve it, than to make some other "temporary" decision that would
probably be hard to reverse.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 10:00 ` dhruva
@ 2008-03-19 5:44 ` Bastien
2008-03-19 9:42 ` Juanma Barranquero
2008-03-29 1:00 ` Xavier Maillard
1 sibling, 1 reply; 236+ messages in thread
From: Bastien @ 2008-03-19 5:44 UTC (permalink / raw)
To: dhruva
Cc: esr, Andreas Schwab, Chong Yidong, Emacs Devel, Karl Fogel,
Stefan Monnier, Stephen J. Turnbull
dhruva <dhruvakm@gmail.com> writes:
> I just hope it the decision is based on technical facts rather than
> affiliations and emotions...
I think the right dimension to consider is the social one.
The assumption in the discussion so far has been namely this one: it is
possible to use a dVCS instead of the current CVS without switching to a
new project workflow. Even better: most dVCS are so flexible that you
can adapt your project workflow _after_ you start using one of them.
This has been specifically stated in Stephen J. Turnbull's post (from
January 08):
http://article.gmane.org/gmane.emacs.devel/86530
> Thus I suggest that the project workflow discussion be postponed until
> the core stakeholders are satisfied that the new tools are functioning
> stably in the current workflow. This will take only a month, at most
> two, once the tools are chosen. As you point out, a big advantage of
> a dVCS is the flexibility of the workflow even after it is installed.
> There is no big loss to waiting a bit, and a potential large gain: the
> improved understanding of the tools that the core stakeholders will
> have.
... and this is clearly *true* when the use of the dVCS system is not
problematic /per se/.
Now we are in a situation where the decision for the dVCS has been made
(bzr) and yet this decision is not satisfactory for many of us.
So instead of trying to convince 120 developpers to use bzr in its
current unsatisfactory state, maybe it's time to open the discussion
about the project workflow, and see if the number of people to convince
cannot be reduced by such a discussion.
Now referring to Gregory Collins' post[1] about the different workflows,
I think the current workflow for Emacs would be translated into a mix of
the "star" topology (where many developers are entitled to write in any
part of the codebase) and the "Lieutenant" topology (where the majority
of developers are responsible for subsystems.)
This would mean that some core developers have access to all the code,
and need to agree about when bzr is good enough, and other developers
are free to use whatever they want, provided that they send patches in
the form that the core developers prefer.
I guess at most 25% of the current 120 developers would need to have
access to all the code. The rest would be responsible for a limited
part -- either a large directory like Gnus or a single Elisp file.
Of course, it would be easier if all the Lieutenants were using bzr,
because the core team would just need to pull from the lieutenants
repositories. But the only true requisit is that lieutenants keep
pulling from the Emacs codebase and make sure the code they are
responsible for works correctly with the latest Emacs code.
We spent time learning that the radical change with dVCS is that
they move the constraints for the workflow from the technical to
the social dimension. It's strange that the discussion about bzr
is just a technical one, without consideration about the social
change this already calls for.
Notes:
[1] http://article.gmane.org/gmane.emacs.devel/86503
--
Bastien
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-19 5:44 ` Bastien
@ 2008-03-19 9:42 ` Juanma Barranquero
2008-03-19 14:04 ` Bastien
0 siblings, 1 reply; 236+ messages in thread
From: Juanma Barranquero @ 2008-03-19 9:42 UTC (permalink / raw)
To: Bastien; +Cc: Emacs Devel
On Wed, Mar 19, 2008 at 6:44 AM, Bastien <bzg@altern.org> wrote:
> The assumption in the discussion so far has been namely this one: it is
> possible to use a dVCS instead of the current CVS without switching to a
> new project workflow. Even better: most dVCS are so flexible that you
> can adapt your project workflow _after_ you start using one of them.
This is one assumption. The other one is that all dVCS (or at least,
the three or four "major" ones) are largely equivalent. Both seem to
be false at this moment.
> This would mean that some core developers have access to all the code,
> and need to agree about when bzr is good enough, and other developers
> are free to use whatever they want, provided that they send patches in
> the form that the core developers prefer.
>
> I guess at most 25% of the current 120 developers would need to have
> access to all the code. The rest would be responsible for a limited
> part -- either a large directory like Gnus or a single Elisp file.
I don't think I agree. Until now the Emacs model has been that
everyone with write access is trusted to display some common sense,
and it has worked quite well. Limiting who can write to the canonical
repository and establishing that kind of hierarchy seems like fixing a
non-existent problem. As you say, it is a social issue. If I do a
pervasive change in ido or cua, I *will* send it to Kim, for example;
but I don't want to have to pass through someone to fix a typo or
correct a silly oversight. Let's not create bureaucracy until we know
we need it.
> It's strange that the discussion about bzr
> is just a technical one
Which technical discussion?
Juanma
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:19 ` Matthieu Moy
@ 2008-03-19 9:43 ` Teemu Likonen
0 siblings, 0 replies; 236+ messages in thread
From: Teemu Likonen @ 2008-03-19 9:43 UTC (permalink / raw)
To: bazaar; +Cc: Lennart Borgman (gmail), Matthieu Moy, emacs-devel
Matthieu Moy kirjoitti:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> > I no nothing about this, but it looks like the bzr developers
> > thinks that bzr is as fast as git:
> >
> > http://bazaar-vcs.org/Benchmarks
> >
> > It looks like something is wrong, I have absolutely no idea what.
>
> AAUI, the benchmarks were done importing tarballs, not history, and
> therefore on a short-size history. I'd say "unrealisticly short-size
> history" indeed.
The page says:
"This page shows how Bazaar stacks up on 40-50 real Use Cases on 33 real
projects."
<http://bazaar-vcs.org/Benchmarks>
If the benchmarks were done without any VCS history at all, then it
really is not about "real Use Cases" on "real projects" as it claims.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 12:56 ` dhruva
2008-03-14 13:10 ` Lennart Borgman (gmail)
2008-03-14 22:26 ` Martin Geisler
@ 2008-03-19 10:50 ` Sascha Wilde
2 siblings, 0 replies; 236+ messages in thread
From: Sascha Wilde @ 2008-03-19 10:50 UTC (permalink / raw)
To: dhruva; +Cc: schwab, Eli Zaretskii, bazaar, Matthieu Moy, emacs-devel
dhruva <dhruvakm@gmail.com> wrote:
> If mercurial decides to support multiple branches under the same
> folder, I wonder what impact it might have on the speed.
FWIW it does.
See http://www.selenic.com/mercurial/wiki/index.cgi/Branch
cheers
sascha
--
Sascha Wilde
"There is no reason why anyone would want a computer in their home"
Ken Olson, DEC, 1977
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git (rerun)
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
` (3 preceding siblings ...)
2008-03-18 20:22 ` James Westby
@ 2008-03-19 11:37 ` Teemu Likonen
2008-03-19 12:17 ` James Westby
2008-03-19 16:41 ` Teemu Likonen
4 siblings, 2 replies; 236+ messages in thread
From: Teemu Likonen @ 2008-03-19 11:37 UTC (permalink / raw)
To: bazaar; +Cc: emacs-devel
Teemu Likonen kirjoitti:
> I did some benchmarking in git and bzr repositories of Emacs. Some
> numbers: 89711 revisions (by "git log --pretty=oneline | wc -l"),
> 2825 files. Both repositories seem to have just linear history
> converted from CVS repo. Both have the same head revision which is
> 481c2a1e31f32c8aa0fb6d504575b75a18537788 (git) and
> revid:cvs-1:tsdh-20080318180244-lxbzttdnh6ecqbka (bzr).
>
> Repositories/branches are pulled from here:
> git: git://git.sv.gnu.org/emacs.git
> bzr: http://bzr.notengoamigos.org/emacs/trunk/
>
> My system is AMD Sempron 3000+ with 2 GB memory and it's running
> Debian GNU/Linux 4.0. I'm using the latest development versions of
> both git (1.5.5.rc0.6.gdeda) and bzr (1.4dev). I just measured with
> 'time' command how long it takes to run certain commands.
Hey! I realised that the emacs bzr repository was not fully optimized
with "bzr pack" command. By running this command it really improves the
performance of bzr; now I'm getting similar numbers as some of you. I
really apologise for the misleading information I have spread. I want
to correct my mistakes by running my tests again (see below).
This raises questions though. I had downloaded the premade emacs bzr
repo from <http://bzr.notengoamigos.org/> and it seems to have its repo
pretty much optimized since it performs much better than my previous
benchmark. I had done almost nothing with the repository after that,
just some bzr-pulls and performance tests. How come the emacs bzr
repository slows down so much and so quickly? My experience is that you
definitely want to run "bzr pack" quite often.
Anyway, here are the same tests with bzr-packed and git-gc'd
repositories. This test shows that both have improved their
performance, especially bzr. I did run all the tests three times to see
if caches have effect. They didn't: all the three runs gave very much
the same numbers. I picked up the best one anyway.
Again, I'm really sorry about my previous tests.
> Viewing history
> ---------------
I want to point out that in git you can always see the log
_immediately_, no matter how long it takes to display the whole thing.
In bzr these numbers reflect pretty much the time to get anything
visible at all after entering the command.
> The complete history:
>
> $ time git log >/dev/null
> real 0m5.741s
>
> $ time bzr log >/dev/null
> real 3m15.708s
git: 0m3.348s
bzr: 1m15.143s
> Last 100 revisions:
>
> $ time git log -100 >/dev/null
> real 0m0.011s
>
> $ time bzr log -l100 >/dev/null
> real 2m10.270s
git: 0m0.009s
bzr: 0m26.562s
> Last 10 revisions:
>
> $ time git log -10 >/dev/null
> real 0m0.007s
>
> $ time bzr log -l10 >/dev/null
> real 2m9.163s
git: 0m0.005s
bzr: 0m25.519s
> The complete history of a single file:
>
> $ time git log src/keymap.c >/dev/null
> real 0m9.240s
> (The same as above but with detecting and following possible
> renames:) $ time git log --follow src/keymap.c >/dev/null
> real 0m17.891s
>
> $ time bzr log src/keymap.c >/dev/null
> real 3m35.431s
git: 0m5.127s
git: 0m8.953s (with --follow)
bzr: 0m55.461s
> Differences between revisions
> -----------------------------
> View changes introduced in given revision:
>
> (This shows also the commit message, author and date.)
> $ time git show 2635714f3dac5f24eb1997cbf97285810f6799c0 >/dev/null
> real 0m0.012s
>
> $ time bzr diff -c revid:cvs-1:wohler-20080318101724-c3ofm3vslli3wfwl
> >/dev/null real 2m40.467s
git: 0m0.010s
bzr: 0m23.315s
> Show differences between two revisions:
>
> $ time git diff HEAD~10..HEAD~4 >/dev/null
> real 0m0.076s
>
> $ time bzr diff -r -11..-5 >/dev/null
> real 2m44.214s
git: 0m0.068s
bzr: 0m24.140s
> $ time git diff HEAD~4.. >/dev/null
> real 0m0.072s
>
> $ time bzr diff -r -5.. >/dev/null
> real 1m21.836s
git: 0m0.060s
bzr: 0m12.889s
> Creating a branch
> -----------------
>
> With git I chose "git checkout -b" instead of "git branch" because
> the former also checks out the files as does "bzr branch". The bzr
> branch is created inside the same shared repository so that the
> common objects are shared.
>
>
> Create new topic branch based on the head revision of the main
> development branch:
>
> $ time git checkout -b topic master >/dev/null
> real 0m0.062s
>
> $ time bzr branch trunk topic >/dev/null
> real 0m7.249s
git: 0m0.043s
bzr: 0m4.504s
> Create new topic branch based on earlier revision of main development
> branch:
>
> $ time git checkout -b topic master~4 >/dev/null
> real 0m0.085s
>
> $ time bzr branch -r -5 trunk topic >/dev/null
> real 2m51.551s
git: 0m0.062s
bzr: 0m30.120s
> Compare branches' commit histories
> ----------------------------------
>
> In above benchmark I created branch 'topic' which is based on earlier
> revision of main development branch. In this test I compared commands
> which display commits that are missing from 'topic' branch compared
> to the main development branch (four commits in total).
>
>
> $ time git log topic..master >/dev/null
> real 0m0.006s
>
> $ time bzr missing --theirs-only ../trunk >/dev/null
> real 18m25.173s
git: 0m0.004s
bzr: 13m48.239s
> Annotate/blame a file (src/keymap.c)
> ------------------------------------
>
> $ time git blame src/keymap.c >/dev/null
> real 0m8.753s
>
> $ time bzr blame src/keymap.c >/dev/null
> real 0m58.296s
git: 0m7.954s
bzr: 0m17.114s
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git (rerun)
2008-03-19 11:37 ` Emacs repository benchmark: bzr and git (rerun) Teemu Likonen
@ 2008-03-19 12:17 ` James Westby
2008-03-19 22:39 ` Robert Collins
2008-03-19 16:41 ` Teemu Likonen
1 sibling, 1 reply; 236+ messages in thread
From: James Westby @ 2008-03-19 12:17 UTC (permalink / raw)
To: Teemu Likonen; +Cc: bazaar, emacs-devel
On Wed, 2008-03-19 at 13:37 +0200, Teemu Likonen wrote:
> Hey! I realised that the emacs bzr repository was not fully optimized
> with "bzr pack" command. By running this command it really improves the
> performance of bzr; now I'm getting similar numbers as some of you. I
> really apologise for the misleading information I have spread. I want
> to correct my mistakes by running my tests again (see below).
>
> This raises questions though. I had downloaded the premade emacs bzr
> repo from <http://bzr.notengoamigos.org/> and it seems to have its repo
> pretty much optimized since it performs much better than my previous
> benchmark. I had done almost nothing with the repository after that,
> just some bzr-pulls and performance tests. How come the emacs bzr
> repository slows down so much and so quickly? My experience is that you
> definitely want to run "bzr pack" quite often.
Hi,
Thanks for updating us.
I wanted to point out that bzr automatically repacks on commit
every so often, this means that the performance degredation should
be bounded, but yes, you will often be able to speed it up by
running "pack" manually.
In recent versions (I don't know which exactly, sorry) git has
also added the auto-repack on commit. I don't know how their
strategy differs from bzr's, but they should both ensure that
it never gets really bad.
I do think the effects of repacking bzr are very drastic, so it
is probably worth investigating where the slowdown was.
Do you still have your .bzr/repository/ from the old tests?
Is there anything in .bzr/repository/obsolete_packs/ ? That would
let us know just how many packs you were running with.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-19 9:42 ` Juanma Barranquero
@ 2008-03-19 14:04 ` Bastien
2008-03-19 14:49 ` Juanma Barranquero
0 siblings, 1 reply; 236+ messages in thread
From: Bastien @ 2008-03-19 14:04 UTC (permalink / raw)
To: Juanma Barranquero; +Cc: Emacs Devel
"Juanma Barranquero" <lekktu@gmail.com> writes:
>> The assumption in the discussion so far has been namely this one: it is
>> possible to use a dVCS instead of the current CVS without switching to a
>> new project workflow. Even better: most dVCS are so flexible that you
>> can adapt your project workflow _after_ you start using one of them.
>
> This is one assumption. The other one is that all dVCS (or at least,
> the three or four "major" ones) are largely equivalent. Both seem to
> be false at this moment.
They are not equivalent in terms of performance, but I think the
assumption was more precisely that all dVCS are equivalent in terms of
their ability to adapt to any workflow. This assumption is true IMO.
> Until now the Emacs model has been that everyone with write access is
> trusted to display some common sense, and it has worked quite well.
Sure, thanks to people on this mailing list!
> Limiting who can write to the canonical repository and establishing
> that kind of hierarchy seems like fixing a non-existent problem.
I didn't want to fix problems in the current workflow.
One of the benefits of using a dVCS is that you can envision different
workflows. If everybody were okay with bzr then there would be no point
in trying to imagine other workflows before using the new dVCS. But
since bzr has some annoying shortcomings, maybe it is useful to be sure
that everyone wants to stick to the current workflow before avoiding bzr
because of its inability to preserve this workflow...
One of the shortcomings of the current workflow is this one: some piece
of code in Emacs is actively developped outside of the Emacs CVS (Gnus,
ERC, Org, etc.) Since these pieces are also part of Emacs, any change
on them in the Emacs CVS requires someone to report the changes in the
local, independant repository of the module. This is double work, and
such energy could be spared with the "Lieutenant" topology previously
described.
> As you say, it is a social issue. If I do a pervasive change in ido or
> cua, I *will* send it to Kim, for example; but I don't want to have to
> pass through someone to fix a typo or correct a silly oversight.
I don't propose to sparse the code into areas where only one developer
can make changes. I propose to think about what a _distributed_ VCS
would be really useful for as a collective tool, in hope that such a
discussion might give directions in the evaluation of bzr.
(Of course, a dVCS is already useful from an individual point of view:
being able to commit locally, to work on several local branches, all
this means it's already worth using a dVCS. But bzr might also be
useful as a collective tool.)
> Let's not create bureaucracy until we know we need it.
Well, I believe the real benefit of a dVCS is precisely to avoid
bureaucracy -- provided that you can adapt the tool to the way people
want to work together with it, and this requires some discussion.
--
Bastien
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-19 14:04 ` Bastien
@ 2008-03-19 14:49 ` Juanma Barranquero
2008-03-19 15:30 ` Bastien
0 siblings, 1 reply; 236+ messages in thread
From: Juanma Barranquero @ 2008-03-19 14:49 UTC (permalink / raw)
To: Bastien; +Cc: Emacs Devel
On Wed, Mar 19, 2008 at 3:04 PM, Bastien <bzg@altern.org> wrote:
> They are not equivalent in terms of performance, but I think the
> assumption was more precisely that all dVCS are equivalent in terms of
> their ability to adapt to any workflow. This assumption is true IMO.
Performance often influences workflow.
Also, that every dVCS is flexible enough to adapt does not mean that
all workflows are equally practical or easy to follow with any of
them. Were this not the Emacs project, determining the workflow and
choosing the tool that best matches it would seem preferable to trying
to shoehorn this or that tool to the desired workflow.
> One of the benefits of using a dVCS is that you can envision different
> workflows. If everybody were okay with bzr then there would be no point
> in trying to imagine other workflows before using the new dVCS. But
> since bzr has some annoying shortcomings, maybe it is useful to be sure
> that everyone wants to stick to the current workflow before avoiding bzr
> because of its inability to preserve this workflow...
I don't think we're at that point yet. We're at the point were normal
operations are slow because of the Emacs' repository size and long
history. At least, that's what it seems from the comments so far.
> One of the shortcomings of the current workflow is this one: some piece
> of code in Emacs is actively developped outside of the Emacs CVS (Gnus,
> ERC, Org, etc.) Since these pieces are also part of Emacs, any change
> on them in the Emacs CVS requires someone to report the changes in the
> local, independant repository of the module. This is double work, and
> such energy could be spared with the "Lieutenant" topology previously
> described.
Agreed. But there are relatively few, very specific parts of Emacs
that suffer this problem: gnus, org, etc.
> I propose to think about what a _distributed_ VCS
> would be really useful for as a collective tool, in hope that such a
> discussion might give directions in the evaluation of bzr.
That kind of discussion should be independent of the tool, shouldn't it?
Juanma
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-19 14:49 ` Juanma Barranquero
@ 2008-03-19 15:30 ` Bastien
0 siblings, 0 replies; 236+ messages in thread
From: Bastien @ 2008-03-19 15:30 UTC (permalink / raw)
To: Juanma Barranquero; +Cc: Emacs Devel
"Juanma Barranquero" <lekktu@gmail.com> writes:
> Also, that every dVCS is flexible enough to adapt does not mean that
> all workflows are equally practical or easy to follow with any of
> them.
True.
> Were this not the Emacs project, determining the workflow and choosing
> the tool that best matches it would seem preferable to trying to
> shoehorn this or that tool to the desired workflow.
My guess is that the collective workflow will change after the switch.
My point was to try thinking about such possible changes, depending on
what people think of the current workflow.
> I don't think we're at that point yet. We're at the point were normal
> operations are slow because of the Emacs' repository size and long
> history. At least, that's what it seems from the comments so far.
Okay. Hopefully bzr will improve quickly.
> Agreed. But there are relatively few, very specific parts of Emacs
> that suffer this problem: gnus, org, etc.
Right. But think of the work on the rmail-mbox-branch. If this branch
was really an independant subproject (like Gnus), it would help people
jumping in.
>> I propose to think about what a _distributed_ VCS
>> would be really useful for as a collective tool, in hope that such a
>> discussion might give directions in the evaluation of bzr.
>
> That kind of discussion should be independent of the tool, shouldn't
> it?
Yes, sure. But it seems more useful to have this discussion instead of
the git-bzr-mercurial debate...
--
Bastien
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-14 9:18 ` Juanma Barranquero
2008-03-14 10:08 ` Matthew D. Fuller
@ 2008-03-19 16:31 ` Nicholas Allen
1 sibling, 0 replies; 236+ messages in thread
From: Nicholas Allen @ 2008-03-19 16:31 UTC (permalink / raw)
To: Juanma Barranquero
Cc: Alexander Belchenko, bazaar, Dan Nicolaescu, Andreas Schwab,
emacs-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Have you submitted a bug report?
Nick
Juanma Barranquero wrote:
| On Fri, Mar 14, 2008 at 8:16 AM, Dan Nicolaescu <dann@ics.uci.edu> wrote:
|
|> The content is OK, but it takes 30 seconds to run
|> bzr log --limit=30 --short FILENAME
|
| On Windows XP (with prebuilt binary of 1.2.0), the command
|
| bzr log --limit=30 --short lisp\ChangeLog
|
| brought pagefile size up from ~500 MB (before running bazaar) to
|> 2.5GB (and I had to kill it). It is repeatable.
|
| Juanma
|
| -------------------------
|
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFH4T/NbpmWsXfOU58RAribAJ9i5Mcs7nD3IBBNsh3ht3U5mq1XUgCfT2HG
pyFXC1fgEZlgW69JaMVr174=
=1Fjm
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git (rerun)
2008-03-19 11:37 ` Emacs repository benchmark: bzr and git (rerun) Teemu Likonen
2008-03-19 12:17 ` James Westby
@ 2008-03-19 16:41 ` Teemu Likonen
1 sibling, 0 replies; 236+ messages in thread
From: Teemu Likonen @ 2008-03-19 16:41 UTC (permalink / raw)
To: bazaar; +Cc: emacs-devel
Teemu Likonen kirjoitti:
> Hey! I realised that the emacs bzr repository was not fully optimized
> with "bzr pack" command. By running this command it really improves
> the performance of bzr; now I'm getting similar numbers as some of
> you. I really apologise for the misleading information I have spread.
> I want to correct my mistakes by running my tests again (see below).
>
> This raises questions though. I had downloaded the premade emacs bzr
> repo from <http://bzr.notengoamigos.org/> and it seems to have its
> repo pretty much optimized since it performs much better than my
> previous benchmark. I had done almost nothing with the repository
> after that, just some bzr-pulls and performance tests. How come the
> emacs bzr repository slows down so much and so quickly? My experience
> is that you definitely want to run "bzr pack" quite often.
I know the pattern now. The emacs bzr repo gets quite much slower after
every "bzr pull" update. My second test (the rerun) in bzr-packed
repository gave 1 minute 15 seconds for whole-history "bzr log". Since
then I have bzr-pulled three times (20 new commits in total) and I get
1 minute 45 seconds for "bzr log" now. Just a couple of pulls more
without packing the repo and we'd be back in the situation of my first
benchmarks (i.e. "bzr log" taking three minutes).
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git (rerun)
2008-03-19 12:17 ` James Westby
@ 2008-03-19 22:39 ` Robert Collins
0 siblings, 0 replies; 236+ messages in thread
From: Robert Collins @ 2008-03-19 22:39 UTC (permalink / raw)
To: James Westby; +Cc: bazaar, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 464 bytes --]
On Wed, 2008-03-19 at 12:17 +0000, James Westby wrote:
>
> I do think the effects of repacking bzr are very drastic, so it
> is probably worth investigating where the slowdown was.
I think its the same thing that John, Aaon and I have been discussing
about index miss costs; once that is fixed the degredation on local disk
from multiple packs should be significantly reduced.
-Rob
--
GPG key available at: <http://www.robertcollins.net/keys.txt>.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 20:05 ` Andreas Schwab
2008-03-18 20:26 ` Thien-Thi Nguyen
@ 2008-03-20 1:04 ` Jonathan Lange
1 sibling, 0 replies; 236+ messages in thread
From: Jonathan Lange @ 2008-03-20 1:04 UTC (permalink / raw)
To: Andreas Schwab; +Cc: esr, cyd, emacs-devel, rms, monnier
On Wed, Mar 19, 2008 at 7:05 AM, Andreas Schwab <schwab@suse.de> wrote:
> Richard Stallman <rms@gnu.org> writes:
>
> > This question is over and decided.
> > We will use GNU Bzr, because it is a GNU package.
>
> That is a very bad move. That will mean that nobody will be able to
> effectively work on emacs any more.
>
I don't know about that.
I hacked the README file and replaced every 'e' with an 'o' (emulating
a common typo for me). cvs diff takes over 5 seconds, Bazaar takes
under 1. It took me a lot longer to get the Bazaar repository than it
did to get the Emacs working tree, but now that I have it, lots of
basic operations are faster.
My CVS skills are really, really rusty, so this might not be a fair
comparison, but 'bzr status' takes about 0.3 seconds while 'cvs
status' takes about 8 seconds. Also, although this is a bit
subjective, I find the output of 'bzr status' a lot more helpful for
quickly assessing what I've changed.
Most working days, I really only[1] use 'status', 'diff', 'merge',
'branch', 'revert', 'commit' and basic file ops like 'add' and 'mv'.
These benefit greatly from local access.
jml
[1] Well, those are the primitives I use. I also frequently use
'shelve' and 'unshelve' from the rather sweet bzrtools plugin.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 18:15 ` Juanma Barranquero
@ 2008-03-20 14:00 ` Stefan Monnier
2008-03-20 14:10 ` Jason Rumney
2008-03-21 12:51 ` dhruva
0 siblings, 2 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-20 14:00 UTC (permalink / raw)
To: Juanma Barranquero; +Cc: Emacs Devel
>> I'd also like to hear from people working on other platforms (Macs OS
>> X, Windows) to make sure that the Bzr mirror can be used there as well.
> I've done a bit of testing with Jason Earl's mirror, using bzr 1.2.0
> on Windows XP.
> It is slow. As I already reported,
> bzr log --limit=30 --short lisp\ChangeLog
> consumed all available memory and had to be killed. Also surprising,
> using Jason's shared repository setup example, a simple
> bzr merge --pull
> from the sandbox branch takes ten or more seconds, and that's a purely local op.
I was not talking about performance (we know about those problems
already). I'm expecting problems such as "doesn't build", e.g. because
of EOL issues.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-20 14:00 ` Stefan Monnier
@ 2008-03-20 14:10 ` Jason Rumney
2008-03-20 15:33 ` Stefan Monnier
2008-03-21 12:51 ` dhruva
1 sibling, 1 reply; 236+ messages in thread
From: Jason Rumney @ 2008-03-20 14:10 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Juanma Barranquero, Emacs Devel
Stefan Monnier wrote:
> I was not talking about performance (we know about those problems
> already). I'm expecting problems such as "doesn't build", e.g. because
> of EOL issues.
>
bzr doesn't seem to mess with EOLs, so the build runs fine.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-20 14:10 ` Jason Rumney
@ 2008-03-20 15:33 ` Stefan Monnier
2008-03-20 20:34 ` Eli Zaretskii
0 siblings, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-20 15:33 UTC (permalink / raw)
To: Jason Rumney; +Cc: Juanma Barranquero, Emacs Devel
>> I was not talking about performance (we know about those problems
>> already). I'm expecting problems such as "doesn't build", e.g. because
>> of EOL issues.
> bzr doesn't seem to mess with EOLs, so the build runs fine.
I don't see why the first implies the second, but I'm glad to hear it
builds correctly.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-20 15:33 ` Stefan Monnier
@ 2008-03-20 20:34 ` Eli Zaretskii
0 siblings, 0 replies; 236+ messages in thread
From: Eli Zaretskii @ 2008-03-20 20:34 UTC (permalink / raw)
To: Stefan Monnier; +Cc: lekktu, emacs-devel, jasonr
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Thu, 20 Mar 2008 11:33:35 -0400
> Cc: Juanma Barranquero <lekktu@gmail.com>, Emacs Devel <emacs-devel@gnu.org>
>
> >> I was not talking about performance (we know about those problems
> >> already). I'm expecting problems such as "doesn't build", e.g. because
> >> of EOL issues.
>
> > bzr doesn't seem to mess with EOLs, so the build runs fine.
>
> I don't see why the first implies the second
Because the files in their original form build just fine. Changing
the EOL format changes the files, which gives birth to the possibility
that the messed up files will prevent a build.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-20 14:00 ` Stefan Monnier
2008-03-20 14:10 ` Jason Rumney
@ 2008-03-21 12:51 ` dhruva
1 sibling, 0 replies; 236+ messages in thread
From: dhruva @ 2008-03-21 12:51 UTC (permalink / raw)
To: Stefan Monnier; +Cc: Juanma Barranquero, bazaar, Emacs Devel
Hi,
On Thu, Mar 20, 2008 at 7:30 PM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
> I was not talking about performance (we know about those problems
> already). I'm expecting problems such as "doesn't build", e.g. because
> of EOL issues.
I face problems when I network connectivity is choppy. I get a crash
when I lose network connection in between a 'bzr pull'. Every time I
see the traceback, I fear corrupting my repository and having to do a
clone all over again. It unfortunately comes back to performance. Had
it been fast, I will have done another clone and compared the folders
or something like that.
From a feature perspective, bzr is mature enough to be able to use in
big projects. Just the performance bottlenecks makes it difficult to
accept it.
I hear that there are some patches for bzr to make it fast. I request
the bzr developers to create a bzr branch with performance
improvements that we can just pull and use.
-dhruva
--
Contents reflect my personal views only!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 20:26 ` Thien-Thi Nguyen
@ 2008-03-22 4:23 ` Michael Olson
2008-03-22 11:18 ` Thien-Thi Nguyen
0 siblings, 1 reply; 236+ messages in thread
From: Michael Olson @ 2008-03-22 4:23 UTC (permalink / raw)
To: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 1170 bytes --]
Thien-Thi Nguyen <ttn@gnuvola.org> writes:
> On the other hand, if we see something like:
>
> | ttn <-> git <------------> git <-> jrhacker : high freq
> | emacs emacs : changes
> | ^ ^
> | | |
> | v v
> | bzr <------------> bzr : low freq
> | emacs emacs : changes
>
> evolve, then maybe that's not so bad.
I, for one, will be using git instead of bzr to make initial changes to
Emacs. Once tested, my changes will then be imported from git to bzr by
means of some script, much like my current setup for the git emacs repo
at git.sv.gnu.org and CVS HEAD.
Once I learned that git branches were simply pointers into a DAG, and
once I experienced the absurdly good speed of git, there was simply no
going back to bzr and Mercurial.
--
| Michael Olson | FSF Associate Member #652 |
| http://mwolson.org/ | Hobbies: Lisp, HCoop |
| Projects: Emacs, Muse, ERC, EMMS, ErBot, DVC, Planner |
`-------------------------------------------------------'
[-- Attachment #2: Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-22 4:23 ` Michael Olson
@ 2008-03-22 11:18 ` Thien-Thi Nguyen
2008-03-24 6:19 ` Michael Olson
0 siblings, 1 reply; 236+ messages in thread
From: Thien-Thi Nguyen @ 2008-03-22 11:18 UTC (permalink / raw)
To: Michael Olson; +Cc: emacs-devel
() Michael Olson <mwolson@gnu.org>
() Fri, 21 Mar 2008 21:23:58 -0700
I, for one, will be using git instead of bzr to make initial
changes to Emacs. Once tested, my changes will then be
imported from git to bzr by means of some script, much like my
current setup for the git emacs repo at git.sv.gnu.org and CVS
HEAD.
Could you post the scripts or a link to them?
I'd like to try out the setup.
thi
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (12 preceding siblings ...)
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
@ 2008-03-22 17:59 ` Stefan Monnier
2008-03-22 19:59 ` Andreas Schwab
2008-03-24 7:53 ` Christian Faulhammer
14 siblings, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-22 17:59 UTC (permalink / raw)
To: Jason Earl; +Cc: bazaar, emacs-devel
> After a few false starts I have been successful (at least as far as I
> can tell) in importing the Emacs CVS repository into Bazaar. If anyone
> is interested in playing with the results you can check out the HEAD of
> the CVS repository with:
> bzr clone http://bzr.notengoamigos.org/emacs/trunk/
Other than the tags (which it seems are still missing), it seems that an
important missing information is the rename info: is cvsps unable to
recognize file renames?
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-22 17:59 ` Emacs Bazaar repository Stefan Monnier
@ 2008-03-22 19:59 ` Andreas Schwab
0 siblings, 0 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-22 19:59 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
> Other than the tags (which it seems are still missing), it seems that an
> important missing information is the rename info: is cvsps unable to
> recognize file renames?
cvsps only computes changesets, nothing more. git computes renames on
the fly, btw.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-22 11:18 ` Thien-Thi Nguyen
@ 2008-03-24 6:19 ` Michael Olson
2008-03-25 9:36 ` Thien-Thi Nguyen
0 siblings, 1 reply; 236+ messages in thread
From: Michael Olson @ 2008-03-24 6:19 UTC (permalink / raw)
To: Thien-Thi Nguyen; +Cc: emacs-devel
[-- Attachment #1: Type: text/plain, Size: 833 bytes --]
Thien-Thi Nguyen <ttn@gnuvola.org> writes:
> () Michael Olson <mwolson@gnu.org>
> () Fri, 21 Mar 2008 21:23:58 -0700
>
> I, for one, will be using git instead of bzr to make initial
> changes to Emacs. Once tested, my changes will then be
> imported from git to bzr by means of some script, much like my
> current setup for the git emacs repo at git.sv.gnu.org and CVS
> HEAD.
>
> Could you post the scripts or a link to them?
> I'd like to try out the setup.
Here is a write-up explaining how I do all this:
<http://mwolson.org/projects/GitCvsSync.html>.
--
| Michael Olson | FSF Associate Member #652 |
| http://mwolson.org/ | Hobbies: Lisp, HCoop |
| Projects: Emacs, Muse, ERC, EMMS, ErBot, DVC, Planner |
`-------------------------------------------------------'
[-- Attachment #2: Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
` (13 preceding siblings ...)
2008-03-22 17:59 ` Emacs Bazaar repository Stefan Monnier
@ 2008-03-24 7:53 ` Christian Faulhammer
14 siblings, 0 replies; 236+ messages in thread
From: Christian Faulhammer @ 2008-03-24 7:53 UTC (permalink / raw)
To: Jason Earl; +Cc: emacs, emacs-devel
[-- Attachment #1: Type: text/plain, Size: 779 bytes --]
Hi,
Jason Earl <jearl@xmission.com>:
> This repository is obviously something that should mostly interest
> Emacs developers, but I'm sending this email to the bazaar mailing
> list as well in case they are curious.
And to throw in something else about speed: I tested the various
dVCS repositories available and compared them regarding taken time and
size of repository on disk. This was the initial
checkout/clone/branch/whatever only, subsequent updates are faster for
all of them:
Bzr 1.1 and 1.3:
40m9.579s
397M
Git 1.5.4.4:
8m31.483s
128M
Arch/Tla 1.3.5:
10m21.008s
286M
V-Li
--
Christian Faulhammer, Gentoo Lisp project
<URL:http://www.gentoo.org/proj/en/lisp/>, #gentoo-lisp on FreeNode
<URL:http://www.faulhammer.org/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-24 6:19 ` Michael Olson
@ 2008-03-25 9:36 ` Thien-Thi Nguyen
0 siblings, 0 replies; 236+ messages in thread
From: Thien-Thi Nguyen @ 2008-03-25 9:36 UTC (permalink / raw)
To: Michael Olson; +Cc: emacs-devel
() Michael Olson <mwolson@gnu.org>
() Sun, 23 Mar 2008 23:19:00 -0700
Here is a write-up explaining how I do all this:
<http://mwolson.org/projects/GitCvsSync.html>.
Thanks.
I note that both "cvs export" and "git clone" accept a destination
directory argument; you can elide the "grab SRC; mv SRC DST" into
"grab SRC DST", like so:
cvs: cvs checkout $repo -d cvs-emacs
git: git clone $repo git-emacs
Not a big deal; the writeup is very clear, as it stands.
thi
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-15 12:09 ` dhruva
2008-03-15 21:32 ` Martin Geisler
@ 2008-03-25 21:46 ` Giorgos Keramidas
1 sibling, 0 replies; 236+ messages in thread
From: Giorgos Keramidas @ 2008-03-25 21:46 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, emacs-devel, Martin Geisler
On Sat, 15 Mar 2008 17:39:06 +0530, dhruva <dhruvakm@gmail.com> wrote:
> On Sat, Mar 15, 2008 at 3:56 AM, Martin Geisler <mg@daimi.au.dk> wrote:
>> And even if you have several heads in your Mercurial repository, you can
>> certainly still pull in new changesets.
>
> I have seen it and have used it too. The problem comes (from my
> experience) when you have to push. I agree you can create a new named
> branch and just pull in changes or do a forced pull which will create
> a new head. Suppose I want to keep multiple named branches active and
> yet push to a remote repository from one of the named branch, IMO it
> is not possible with mercurial. I would be happy to know if there is a
> way to do it.
Of course there is:
hg push --force
This will inhibit the warning that you are `creating new heads', if you
push a new named branch.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-19 0:12 ` Johannes Weiner
@ 2008-03-26 7:56 ` David Kastrup
2008-03-27 22:22 ` Johannes Weiner
2008-03-29 1:00 ` Xavier Maillard
0 siblings, 2 replies; 236+ messages in thread
From: David Kastrup @ 2008-03-26 7:56 UTC (permalink / raw)
To: Johannes Weiner; +Cc: esr, cyd, emacs-devel, rms, monnier
Johannes Weiner <hannes@saeurebad.de> writes:
> Richard Stallman <rms@gnu.org> writes:
>
>> This question is over and decided.
>> We will use GNU Bzr, because it is a GNU package.
>
> Wow, that sounds almost democratic.
GNU never was a democratic project. The masses are coming over to GNU,
not the other way round.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-19 2:53 ` Richard Stallman
@ 2008-03-27 1:32 ` Jonathan Lange
2008-03-27 2:24 ` Stephen J. Turnbull
2008-03-27 2:55 ` Stefan Monnier
0 siblings, 2 replies; 236+ messages in thread
From: Jonathan Lange @ 2008-03-27 1:32 UTC (permalink / raw)
To: rms; +Cc: dhruva, emacs-devel, tlikonen, lennart.borgman, bazaar
On Wed, Mar 19, 2008 at 1:53 PM, Richard Stallman <rms@gnu.org> wrote:
> To the emacs maintainers and decision makers: What more information
> is required to convince bzr is not the right tool at the present
> moment?
>
> This decision is not a decision for the present moment. It is a long
> term decision.
>
> So it would be better to wait a few months while Bzr developers
> improve it, than to make some other "temporary" decision that would
> probably be hard to reverse.
>
I've tried to get a list of things that Bazaar needs to improve from
trawling through this list and bugs on the Bazaar tracker.
So far I have:
* bzr log needs to be much faster for single files[1] and for
subsets of history.
* bzr diff -r <something> needs to take at most a couple of seconds
* bzr st <single file> needs to be instantaneous.
* Must be able to get the diff between the current branch and its
parent very quickly.
These are all performance related. I can't recall coming across any
other blockers, but then I haven't been following every email on this
& related threads.
If I've missed anything, please let me know. If I've included anything
that's not really necessary, let me know. If you want, file bugs on
https://bugs.launchpad.net/bzr/+bugs and give them the tag 'emacs'.
jml
[1] Bazaar tends to assume you want to work with the whole tree for
every operation. I think this might be the root cause of a lot of the
disappointment in Bazaar's performance.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-27 1:32 ` Jonathan Lange
@ 2008-03-27 2:24 ` Stephen J. Turnbull
2008-03-27 2:55 ` Stefan Monnier
1 sibling, 0 replies; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-27 2:24 UTC (permalink / raw)
To: Jonathan Lange; +Cc: tlikonen, lennart.borgman, rms, emacs-devel
The bazaar people already know this, removing bazaar from the
addressees.
Jonathan Lange writes:
> I've tried to get a list of things that Bazaar needs to improve from
> trawling through this list and bugs on the Bazaar tracker.
Robert Collins posted an excellent summary of why the "pack" format
repo will make a foundation for rapid progress on performance, and
also summarized his view of what things need fixing. (Sorry, I"m just
before getting on a plane, but it's in the "bazaar" thread on "more
plans, less excuses" or something like that.)
> [1] Bazaar tends to assume you want to work with the whole tree for
> every operation. I think this might be the root cause of a lot of the
> disappointment in Bazaar's performance.
Do you mean whole tree, or whole history? If it's "whole tree", then
git is the obvious counterexample, with most operations on whole trees
being O(1). Even for "whole history", gitk is an order of magnitude
faster than bzr log.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-27 1:32 ` Jonathan Lange
2008-03-27 2:24 ` Stephen J. Turnbull
@ 2008-03-27 2:55 ` Stefan Monnier
2008-03-27 11:58 ` dhruva
` (2 more replies)
1 sibling, 3 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-27 2:55 UTC (permalink / raw)
To: Jonathan Lange; +Cc: bazaar, tlikonen, lennart.borgman, rms, emacs-devel
> I've tried to get a list of things that Bazaar needs to improve from
> trawling through this list and bugs on the Bazaar tracker.
> So far I have:
> * bzr log needs to be much faster for single files[1] and for
> subsets of history.
> * bzr diff -r <something> needs to take at most a couple of seconds
> * bzr st <single file> needs to be instantaneous.
> * Must be able to get the diff between the current branch and its
> parent very quickly.
Actually, this last point is the same as the second. As for the
remaining three they come in this order:
* bzr st <single file> needs to be instantaneous.
* bzr diff -r <something> needs to take at most a couple of seconds
* bzr log needs to be much faster for single files[1] and for
subsets of history.
The first is very serious since it make vc-bzr unusable. Also it's very
easy to fix by providing a new option that prevents outputting the list
of pending changes (which is the operation that takes a long time, and
we don't need that info anyway).
> These are all performance related. I can't recall coming across any
> other blockers, but then I haven't been following every email on this
> & related threads.
Also, given the current performance problems, we haven't tried
much more. E.g. I have no idea how easy it will be to keep Bzr-Emacs in
sync with Gnus's repository.
> [1] Bazaar tends to assume you want to work with the whole tree for
> every operation. I think this might be the root cause of a lot of the
> disappointment in Bazaar's performance.
Actually, as far as I can tell, most of the above problems are unrelated
to "single file vs whole tree": it takes about the same time to do it on
a single file than on the whole tree.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-27 2:55 ` Stefan Monnier
@ 2008-03-27 11:58 ` dhruva
2008-03-27 13:59 ` Vincent Ladeuil
2008-03-29 1:00 ` Xavier Maillard
2 siblings, 0 replies; 236+ messages in thread
From: dhruva @ 2008-03-27 11:58 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
Hi,
On Thu, Mar 27, 2008 at 8:25 AM, Stefan Monnier
<monnier@iro.umontreal.ca> wrote:
> Also, given the current performance problems, we haven't tried
> much more. E.g. I have no idea how easy it will be to keep Bzr-Emacs in
> sync with Gnus's repository.
I have tried keeping my bzr repo of Emacs updated. It is extremely
slow compared to GIT. When a connection breaks during a 'bzr pull', I
need to restart the slow process all over again. I would do the same
with GIT too, since the performance is good, I have nothing to
complain. I would still prefer if the tools could wait for sometime
before giving up. Usually when I use WIFI connectivity, there are
intermittent connection breakage due to feeble signal, I would be
happy if the tools (SCM) could just retry the previous request a few
times before giving up.
-dhruva
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-27 2:55 ` Stefan Monnier
2008-03-27 11:58 ` dhruva
@ 2008-03-27 13:59 ` Vincent Ladeuil
2008-03-29 1:17 ` Stefan Monnier
2008-03-29 1:00 ` Xavier Maillard
2 siblings, 1 reply; 236+ messages in thread
From: Vincent Ladeuil @ 2008-03-27 13:59 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
>>>>> "Stefan" == Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> I've tried to get a list of things that Bazaar needs to improve from
>> trawling through this list and bugs on the Bazaar tracker.
>> So far I have:
>> * bzr log needs to be much faster for single files[1] and for
>> subsets of history.
>> * bzr diff -r <something> needs to take at most a couple of seconds
>> * bzr st <single file> needs to be instantaneous.
>> * Must be able to get the diff between the current branch and its
>> parent very quickly.
Stefan> Actually, this last point is the same as the second. As for the
Stefan> remaining three they come in this order:
Stefan> * bzr st <single file> needs to be instantaneous.
Stefan> * bzr diff -r <something> needs to take at most a couple of seconds
Stefan> * bzr log needs to be much faster for single files[1] and for
Stefan> subsets of history.
Stefan> The first is very serious since it make vc-bzr
Stefan> unusable.
I know that one since it's the precise reason why I stopped using
vc-bzr months ago.
Can you tell us which precise information is needed by vc-bzr (my
understanding, dating from vc-cvs years ago now, is that it wants
to display the file version in the mode line).
I suspect that 'bzr st' aim does not fit vc-bzr needs at all
(even if it's the closest available command from bzr).
Stefan> Also it's very easy to fix by providing a new option
Stefan> that prevents outputting the list of pending changes
Stefan> (which is the operation that takes a long time, and
Stefan> we don't need that info anyway).
Correct. But with a better understanding of the needs we may find
a better solution without special-casing bzr st.
<snip/>
Stefan> Also, given the current performance problems, we
Stefan> haven't tried much more. E.g. I have no idea how
Stefan> easy it will be to keep Bzr-Emacs in sync with Gnus's
Stefan> repository.
Does that mean that Gnus is maintained as a separate project and
regularly kept in sync/imported in the emacs CVS repository ?
If yes, the best solution will be what bzr call 'nested trees'
which is currently working on.
>> [1] Bazaar tends to assume you want to work with the whole
>> tree for every operation. I think this might be the root
>> cause of a lot of the disappointment in Bazaar's
>> performance.
Stefan> Actually, as far as I can tell, most of the above
Stefan> problems are unrelated to "single file vs whole
Stefan> tree": it takes about the same time to do it on a
Stefan> single file than on the whole tree.
I think you both agree :) Internally bzr tends (this is less and
less true) to process the whole tree and then filter the results.
Vincent
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-26 7:56 ` David Kastrup
@ 2008-03-27 22:22 ` Johannes Weiner
2008-03-29 1:00 ` Xavier Maillard
1 sibling, 0 replies; 236+ messages in thread
From: Johannes Weiner @ 2008-03-27 22:22 UTC (permalink / raw)
To: David Kastrup; +Cc: esr, cyd, emacs-devel, rms, monnier
Hi,
David Kastrup <dak@gnu.org> writes:
> Johannes Weiner <hannes@saeurebad.de> writes:
>
>> Richard Stallman <rms@gnu.org> writes:
>>
>>> This question is over and decided.
>>> We will use GNU Bzr, because it is a GNU package.
>>
>> Wow, that sounds almost democratic.
>
> GNU never was a democratic project. The masses are coming over to GNU,
> not the other way round.
Thanks for clarifying. I also misunderstood the context of Richard's
statement, sorry.
Hannes
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-27 2:55 ` Stefan Monnier
2008-03-27 11:58 ` dhruva
2008-03-27 13:59 ` Vincent Ladeuil
@ 2008-03-29 1:00 ` Xavier Maillard
2008-03-29 4:34 ` David Cournapeau
2 siblings, 1 reply; 236+ messages in thread
From: Xavier Maillard @ 2008-03-29 1:00 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
> [1] Bazaar tends to assume you want to work with the whole tree for
> every operation. I think this might be the root cause of a lot of the
> disappointment in Bazaar's performance.
Actually, as far as I can tell, most of the above problems are unrelated
to "single file vs whole tree": it takes about the same time to do it on
a single file than on the whole tree.
What's more, it takes really long time to perform things even
with a pretty new bazaar repository. I have switched a few
projects just to take measure and no matter how big is the
history, all operations are rather expensive in time compared to
any other DVC I am using.
As my python skills are rather small, I can't contribute much
to help "profiling" the code.
Xavier
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 4:11 ` Jonathan Lange
@ 2008-03-29 1:00 ` Xavier Maillard
0 siblings, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-29 1:00 UTC (permalink / raw)
To: Jonathan Lange; +Cc: kfogel, bazaar, emacs-devel
On Thu, Mar 13, 2008 at 3:06 PM, Karl Fogel <kfogel@red-bean.com> wrote:
> 2) I run Debian GNU/Linux ("testing" dist) and have installed the
> 'bzr' package now using 'apt-get'. Given the many variants of
> Bazaar(s) that have existed over the years, I can't be positive
> that 'bzr' is the right package; if it is not, someone please post
> here saying what is :-).
>
'bzr' is the right one. Work is underway to have the package renamed
to 'bazaar'.
Why do you want to rename it ?
Xavier
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-13 11:43 ` Andreas Schwab
` (4 preceding siblings ...)
2008-03-14 11:30 ` Matt Nordhoff
@ 2008-03-29 1:00 ` Xavier Maillard
5 siblings, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-29 1:00 UTC (permalink / raw)
To: Andreas Schwab; +Cc: bazaar, emacs-devel
My first impression is that bzr is slow, so slow that it is completely
unusable. How can it come that a simple bzr log takes more than a
minute to even start? Even cvs log is instantaneous in comparison,
although it has to request the log from the server.
This slowness tenders to make any emacs oriented tool (vc-bzr,
dvc, ...) almost useless and boring. There is something even
worst: slowness makes is a major problem for the "commit often"
slogan. Who want to spend/loose roughly 30s to even start to do
anything ?
I have switched a few projects a few days ago and the experiment
is really painful and certainly not entertaining.
I will persevere on using bzr but dunno how long :)
Although the performances are quite bad, the ease of use of the
whole project is interesting.
Xavier
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 9:17 ` Andreas Schwab
2008-03-18 10:00 ` dhruva
2008-03-18 16:50 ` Stefan Monnier
@ 2008-03-29 1:00 ` Xavier Maillard
2 siblings, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-29 1:00 UTC (permalink / raw)
To: Andreas Schwab; +Cc: kfogel, esr, cyd, monnier, emacs-devel
Karl Fogel <kfogel@red-bean.com> writes:
> All of the DVCSs seem good. No one marshalled any compelling arguments
> in favor of one versus the other on technical grounds, and all other
> things being equal, RMS (and maybe some others, perhaps including Yidong
> and Stefan?) preferred bzr because it is a GNU project.
In its current form bzr is not usable for a project of the size of
Emacs.
Although performances are pretty bad in the current state, things
can be improved if we discuss with the bazaar team. The latest
pull from bzr are giving me some hope for the future -i.e. bzr
log --line/--short is pretty quick now (even with the emacs bzr
repository).
We should try to help improving bazaar as most as possible.
Xavier
--
http://www.gnu.org
http://www.april.org
http://www.lolica.org
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-18 16:05 ` dhruva
2008-03-19 2:53 ` Richard Stallman
@ 2008-03-29 1:00 ` Xavier Maillard
2008-03-29 9:19 ` Andreas Schwab
1 sibling, 1 reply; 236+ messages in thread
From: Xavier Maillard @ 2008-03-29 1:00 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, tlikonen, lennart.borgman, emacs-devel
I personally do not see a single mail which can tilt the scale
in favor of bzr except it is part of GNU project.
The "except it is part of GNU project" is the _main_ reason.
Agreed or not, that's not the question. Maybe there is a need to
explain on gnu.org, why a GNU project *should* support another
GNU project when there are many free (or non-free) competitor
projects.
Xavier
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-18 10:00 ` dhruva
2008-03-19 5:44 ` Bastien
@ 2008-03-29 1:00 ` Xavier Maillard
1 sibling, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-29 1:00 UTC (permalink / raw)
To: dhruva; +Cc: esr, schwab, cyd, emacs-devel, kfogel, monnier
I just hope it the decision is based on technical facts rather than
affiliations and emotions...
I hope not. Technical facts are not, from my point of view, a
sufficient condition. As stated by RMS, and even if I did not
agree at first, we must support a GNU project when possible.
We can help in making bzr feets our needs.
Xavier
--
http://www.gnu.org
http://www.april.org
http://www.lolica.org
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs Bazaar repository
2008-03-26 7:56 ` David Kastrup
2008-03-27 22:22 ` Johannes Weiner
@ 2008-03-29 1:00 ` Xavier Maillard
1 sibling, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-29 1:00 UTC (permalink / raw)
To: David Kastrup; +Cc: rms, cyd, hannes, emacs-devel, esr, monnier
Johannes Weiner <hannes@saeurebad.de> writes:
> Richard Stallman <rms@gnu.org> writes:
>
>> This question is over and decided.
>> We will use GNU Bzr, because it is a GNU package.
>
> Wow, that sounds almost democratic.
GNU never was a democratic project. The masses are coming over to GNU,
not the other way round.
Well spoken ! That is the free aspect of the software that
permits to reach quality and a good technical level in my
opinion. In conclusion, we can help bazaar reach an acceptable
usable state (for emacs) because it's free software.
It is not currently the case but it will.
Xavier
--
http://www.gnu.org
http://www.april.org
http://www.lolica.org
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-27 13:59 ` Vincent Ladeuil
@ 2008-03-29 1:17 ` Stefan Monnier
2008-03-29 1:30 ` James Westby
0 siblings, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-29 1:17 UTC (permalink / raw)
To: Vincent Ladeuil; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
Stefan> Actually, this last point is the same as the second. As for the
Stefan> remaining three they come in this order:
Stefan> * bzr st <single file> needs to be instantaneous.
Stefan> * bzr diff -r <something> needs to take at most a couple of seconds
Stefan> * bzr log needs to be much faster for single files[1] and for
Stefan> subsets of history.
Stefan> The first is very serious since it make vc-bzr
Stefan> unusable.
Actually, I've just installed a patch in Emacs's trunk to make vc-bzr.el
parse the dirstate file more completely, so `bzr status' is not needed
nearly as often. But I don't have any documentation about the dirstate
format, so it's not very satisfactory.
Anybody knows where I can find some doc about that file's format?
> Can you tell us which precise information is needed by vc-bzr (my
> understanding, dating from vc-cvs years ago now, is that it wants
> to display the file version in the mode line).
It wants to know if the file is under Bzr's control, whether it's
added/removed/edited/uptodate and what is the current revision number
(basically). Ideally also if there are conflicts (tho it currently
doesn't use `bzr status' for that but just looks for the .MINE and
friends instead).
> I suspect that 'bzr st' aim does not fit vc-bzr needs at all
> (even if it's the closest available command from bzr).
It seems to fit just fine, except it takes an insance amount of time to
give me the list of pending merges. 2 problems with that:
1 - performance
2 - the list includes merges that are not pertinent (because that merge
does not affect the specified file(s)).
Admittedly, the worst part
Stefan> Also, given the current performance problems, we
Stefan> haven't tried much more. E.g. I have no idea how
Stefan> easy it will be to keep Bzr-Emacs in sync with Gnus's
Stefan> repository.
> Does that mean that Gnus is maintained as a separate project and
> regularly kept in sync/imported in the emacs CVS repository ?
Yes, the two branches are sync'd both ways (I believe they both
currently use CVS as the main repository and the sync'ing is done
semi-automatically via Arch).
> If yes, the best solution will be what bzr call 'nested trees'
> which is currently working on.
I'm not sure this will be sufficient: the Gnus files are not all neatly
confined within a single directory. Arch handles such cases just fine
(patches to Emacs files that aren't in Gnus are just ignored and the
rename support is sufficiently good to be able to figure out which
files correspond to which between the two projects; better yet, the two
projects were brought together after the fact and the renames are
properly handled even without a common ancestor thanks to the use of
arch-tags in the files).
> I think you both agree :) Internally bzr tends (this is less and
> less true) to process the whole tree and then filter the results.
Could be. I hope not: the lessons learned from Arch should include
avoiding to touch/construct/look-at files unless absolutely necessary.
But I'm sure it's not the only problem: the speed difference between
"bzr tags" and "bzr tags --show-ids" can't be due to
whole-tree operations.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 1:17 ` Stefan Monnier
@ 2008-03-29 1:30 ` James Westby
2008-03-29 3:09 ` Stefan Monnier
0 siblings, 1 reply; 236+ messages in thread
From: James Westby @ 2008-03-29 1:30 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
On Fri, 2008-03-28 at 21:17 -0400, Stefan Monnier wrote:
> Actually, I've just installed a patch in Emacs's trunk to make vc-bzr.el
> parse the dirstate file more completely, so `bzr status' is not needed
> nearly as often. But I don't have any documentation about the dirstate
> format, so it's not very satisfactory.
>
> Anybody knows where I can find some doc about that file's format?
>
bzrlib/dirstate.py
No, I'm not being facetious, there's a BNF at the top of the file
that should help you.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 1:30 ` James Westby
@ 2008-03-29 3:09 ` Stefan Monnier
2008-03-29 4:06 ` James Westby
0 siblings, 1 reply; 236+ messages in thread
From: Stefan Monnier @ 2008-03-29 3:09 UTC (permalink / raw)
To: James Westby; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
>> Anybody knows where I can find some doc about that file's format?
> bzrlib/dirstate.py
Thanks, exactly what I was looking for, although the "current tree vs
second tree" distinction is very much unclear to me.
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 3:09 ` Stefan Monnier
@ 2008-03-29 4:06 ` James Westby
2008-03-29 4:50 ` Stefan Monnier
0 siblings, 1 reply; 236+ messages in thread
From: James Westby @ 2008-03-29 4:06 UTC (permalink / raw)
To: Stefan Monnier; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
On Fri, 2008-03-28 at 23:09 -0400, Stefan Monnier wrote:
> >> Anybody knows where I can find some doc about that file's format?
>
> > bzrlib/dirstate.py
>
> Thanks, exactly what I was looking for, although the "current tree vs
> second tree" distinction is very much unclear to me.
I *think* it's actually one or more trees. The first tree is the
left hand parent. Any other tress are the state in the other
parents, i.e. merged revisions.
Thanks,
James
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 1:00 ` Xavier Maillard
@ 2008-03-29 4:34 ` David Cournapeau
2008-03-31 0:00 ` Xavier Maillard
0 siblings, 1 reply; 236+ messages in thread
From: David Cournapeau @ 2008-03-29 4:34 UTC (permalink / raw)
To: Xavier Maillard
Cc: bazaar, rms, lennart.borgman, emacs-devel, Stefan Monnier,
tlikonen
Xavier Maillard wrote:
> What's more, it takes really long time to perform things even
> with a pretty new bazaar repository. I have switched a few
> projects just to take measure and no matter how big is the
> history, all operations are rather expensive in time compared to
> any other DVC I am using.
>
>
That's strange. Are you comparing to mercurial or git ? Which version of
bzr were you using (bzr --version) ?
> As my python skills are rather small, I can't contribute much
> to help "profiling" the code.
>
I think giving the name of the projects (if they are open source) and
the commands you were using would be enough to see an eventual problem.
I don't have experience for large projects with long history (the
biggest project I use bzr with is ~ 2000 files with ~ 4000 revisions),
but I compared those with mercurial a few months ago, and they were
comparable in speed for branch/st/ci/diff commands (log and blame were
much slower, but again, if there is no history, I don't think that's
what you are talking about).
cheers,
David
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 4:06 ` James Westby
@ 2008-03-29 4:50 ` Stefan Monnier
0 siblings, 0 replies; 236+ messages in thread
From: Stefan Monnier @ 2008-03-29 4:50 UTC (permalink / raw)
To: James Westby; +Cc: bazaar, rms, lennart.borgman, emacs-devel, tlikonen
> I *think* it's actually one or more trees. The first tree is the
> left hand parent. Any other tress are the state in the other
> parents, i.e. merged revisions.
I don't think so. The "second tree" seems to correspond to the
leftmost parent. The first tree seems to correspond to something else.
It's usually the same as the second, but when I did a merge, the first
tree seems to describe something like the state of tree at the end of
the merge command, and it dosn't have sha1 for the files with conflicts
(and maybe for others as well).
When merging, there are more than 2 trees (typically just 3: the
"current", the "second" (i.e. leftmost parent), and some other which
I guess corresponds to the other parent).
Stefan
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 1:00 ` Xavier Maillard
@ 2008-03-29 9:19 ` Andreas Schwab
2008-03-29 9:58 ` David Kastrup
` (2 more replies)
0 siblings, 3 replies; 236+ messages in thread
From: Andreas Schwab @ 2008-03-29 9:19 UTC (permalink / raw)
To: Xavier Maillard; +Cc: dhruva, emacs-devel, tlikonen, lennart.borgman, bazaar
Xavier Maillard <xma@gnu.org> writes:
> I personally do not see a single mail which can tilt the scale
> in favor of bzr except it is part of GNU project.
>
> The "except it is part of GNU project" is the _main_ reason.
When an arbitrary political decision wipes away all technical arguments
it is not helping free software in any way.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 9:19 ` Andreas Schwab
@ 2008-03-29 9:58 ` David Kastrup
2008-03-29 10:13 ` dhruva
2008-03-29 14:55 ` Randal L. Schwartz
2008-03-30 5:49 ` Richard Stallman
2008-03-31 0:00 ` Xavier Maillard
2 siblings, 2 replies; 236+ messages in thread
From: David Kastrup @ 2008-03-29 9:58 UTC (permalink / raw)
To: Andreas Schwab
Cc: Xavier Maillard, tlikonen, lennart.borgman, bazaar, emacs-devel
Andreas Schwab <schwab@suse.de> writes:
> Xavier Maillard <xma@gnu.org> writes:
>
>> I personally do not see a single mail which can tilt the scale
>> in favor of bzr except it is part of GNU project.
>>
>> The "except it is part of GNU project" is the _main_ reason.
>
> When an arbitrary political decision wipes away all technical arguments
> it is not helping free software in any way.
Uh, an arbitrary political decision wiping away all technical arguments
is what started free software in the first place.
The question is not whether the decision is political or technical. The
free software movement is, after all, a political one. The question is
whether it is the right political decision. I am not convinced of that.
But your argument is putting the cart before the horse. We should let
ourselves be directed by our goals, not by letting gravity take its
course at the place where we already are.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 9:58 ` David Kastrup
@ 2008-03-29 10:13 ` dhruva
2008-03-29 10:26 ` David Kastrup
2008-03-31 0:00 ` Xavier Maillard
2008-03-29 14:55 ` Randal L. Schwartz
1 sibling, 2 replies; 236+ messages in thread
From: dhruva @ 2008-03-29 10:13 UTC (permalink / raw)
To: David Kastrup, Andreas Schwab, Xavier Maillard, tlikonen,
lennart.borgman, bazaar, emacs-devel
I personally find it odd to compare between a GNU product and another
GPL software. IMHO, we should be treating all GPLed softwares equally.
Hence, comparison between git and bzr can be termed as apple to apple
comparision.
-dhruva
On 3/29/08, David Kastrup <dak@gnu.org> wrote:
> Andreas Schwab <schwab@suse.de> writes:
>
> > Xavier Maillard <xma@gnu.org> writes:
> >
> >> I personally do not see a single mail which can tilt the scale
> >> in favor of bzr except it is part of GNU project.
> >>
> >> The "except it is part of GNU project" is the _main_ reason.
> >
> > When an arbitrary political decision wipes away all technical arguments
> > it is not helping free software in any way.
>
> Uh, an arbitrary political decision wiping away all technical arguments
> is what started free software in the first place.
>
> The question is not whether the decision is political or technical. The
> free software movement is, after all, a political one. The question is
> whether it is the right political decision. I am not convinced of that.
>
> But your argument is putting the cart before the horse. We should let
> ourselves be directed by our goals, not by letting gravity take its
> course at the place where we already are.
>
> --
> David Kastrup, Kriemhildstr. 15, 44793 Bochum
>
>
>
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 10:13 ` dhruva
@ 2008-03-29 10:26 ` David Kastrup
2008-03-31 0:00 ` Xavier Maillard
1 sibling, 0 replies; 236+ messages in thread
From: David Kastrup @ 2008-03-29 10:26 UTC (permalink / raw)
To: dhruva
Cc: bazaar, Andreas Schwab, lennart.borgman, emacs-devel,
Xavier Maillard, tlikonen
dhruva <dhruvakm@gmail.com> writes:
> I personally find it odd to compare between a GNU product and another
> GPL software. IMHO, we should be treating all GPLed softwares equally.
> Hence, comparison between git and bzr can be termed as apple to apple
> comparision.
Not quite. git is licensed as "GPL v2 only" which means that its code
can't be interchanged freely with code of the GNU project. While it is
free software in itself, this puts it at a different level with regard
to how much interchange is possible.
So we are not talking apples and apples here. As I said, I am not sure
that the decision is the best decision even if viewed from a political
angle. But it is not as arbitrary as some want to paint it.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 9:58 ` David Kastrup
2008-03-29 10:13 ` dhruva
@ 2008-03-29 14:55 ` Randal L. Schwartz
2008-03-29 16:35 ` Óscar Fuentes
2008-03-30 5:49 ` Richard Stallman
1 sibling, 2 replies; 236+ messages in thread
From: Randal L. Schwartz @ 2008-03-29 14:55 UTC (permalink / raw)
To: emacs-devel; +Cc: bazaar
>>>>> "David" == David Kastrup <dak@gnu.org> writes:
David> Uh, an arbitrary political decision wiping away all technical arguments
David> is what started free software in the first place.
Only for the revisionists. Free software existed long before the GNU Project.
The GNU Project's contribution was a legally enforcable license to ensure
share-and-share-alike for authors who chose to use the legal system to enforce
their politics. This was definitely an important contribution at the time,
but it wasn't the thing that "started free software".
Those of us who have been around from the beginning must tell the story *as*
it happened, not replay the revisionist's story. In other words, if you don't
lie, I won't have to respond.
--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 14:55 ` Randal L. Schwartz
@ 2008-03-29 16:35 ` Óscar Fuentes
2008-03-29 18:13 ` tomas
2008-03-29 21:05 ` Stephen J. Turnbull
2008-03-30 5:49 ` Richard Stallman
1 sibling, 2 replies; 236+ messages in thread
From: Óscar Fuentes @ 2008-03-29 16:35 UTC (permalink / raw)
To: emacs-devel; +Cc: bazaar
merlyn@stonehenge.com (Randal L. Schwartz) writes:
> David> Uh, an arbitrary political decision wiping away all technical arguments
> David> is what started free software in the first place.
>
> Only for the revisionists. Free software existed long before the GNU Project.
>
> The GNU Project's contribution was a legally enforcable license to ensure
> share-and-share-alike for authors who chose to use the legal system to enforce
> their politics. This was definitely an important contribution at the time,
> but it wasn't the thing that "started free software".
Free Software, ("Free" in the GNU sense), is nothing without a legally
enforceable license that protects its freedom. Maybe you are talking
about what later was known as Open Source? (BSD license, etc).
[snip]
--
Oscar
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 16:35 ` Óscar Fuentes
@ 2008-03-29 18:13 ` tomas
2008-03-29 21:05 ` Stephen J. Turnbull
1 sibling, 0 replies; 236+ messages in thread
From: tomas @ 2008-03-29 18:13 UTC (permalink / raw)
To: Óscar Fuentes; +Cc: bazaar, emacs-devel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Sat, Mar 29, 2008 at 05:35:36PM +0100, Óscar Fuentes wrote:
> merlyn@stonehenge.com (Randal L. Schwartz) writes:
>
> > David> Uh, an arbitrary political decision wiping away all technical arguments
> > David> is what started free software in the first place.
> >
> > Only for the revisionists. Free software existed long before the GNU Project.
> >
> > The GNU Project's contribution was a legally enforcable license to ensure
> > share-and-share-alike for authors who chose to use the legal system to enforce
> > their politics. This was definitely an important contribution at the time,
> > but it wasn't the thing that "started free software".
>
> Free Software, ("Free" in the GNU sense), is nothing without a legally
> enforceable license that protects its freedom. Maybe you are talking
> about what later was known as Open Source? (BSD license, etc).
Oh, noes. You are confused. BSD *is* free by FSF standards[1]. Open
Source is a term coined much later for those who want the advantages of
free without the politics (or put in another terms: to avoid scaring
the suits).
Watch Theo de Raadts rants about _even GNU_ being not free enough to
know what I mean :-)
Open == Free - ethics.
Regards
- -- tomás
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
iD8DBQFH7obDBcgs9XrR2kYRAvH5AJ9rrq3RqHQi0OaOr6T5v3QG5NdSYwCfcBCK
EMV2f0HNAZIIVSMSjHNvU0Q=
=kk2O
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 16:35 ` Óscar Fuentes
2008-03-29 18:13 ` tomas
@ 2008-03-29 21:05 ` Stephen J. Turnbull
1 sibling, 0 replies; 236+ messages in thread
From: Stephen J. Turnbull @ 2008-03-29 21:05 UTC (permalink / raw)
To: Óscar Fuentes; +Cc: bazaar, emacs-devel
Randall Schwartz writes:
> > The GNU Project's contribution was a legally enforcable license
> > to ensure share-and-share-alike for authors who chose to use the
> > legal system to enforce their politics. This was definitely an
> > important contribution at the time, but it wasn't the thing that
> > "started free software".
I basically agree, but one quibble. My understanding is that a
second, equally important, contribution was the very idea of a free
software distribution (ie, public release of a large suite of free
software, preferably a full operating system). I'm fairly sure that
the BSD NET/1 release, and the proposal to greatly expand the
distribution as NET/2, was triggered by hearing about GNU. Sort of a
"hey, that's it! That's what we've wanted to do all along!"
Óscar Fuentes replies:
> Free Software, ("Free" in the GNU sense), is nothing without a
> legally enforceable license that protects its freedom. Maybe you
> are talking about what later was known as Open Source? (BSD
> license, etc).
Those *are* legally enforceable licenses that protect the licensed
software's freedom. Every line of the covered work is fully free, in
perpetuity, as long as a single copy under that license is publicly
available.
Second, please be careful to distinguish between "free software" as
software (which is what Randall was talking about, and is essentially
identical to open source software as defined in the Open Source
Definition), and the "Free Software Movement", which is a political
movement. Any software licensed under a free software license is free
software, regardless of the political opinions of the licensor.
BTW, the Open Source movement is quite hospitable to people whose
primary goal is liberty (eg, the "Quaker faction"). You just have to
believe in liberty enough that you can cooperate happily with the
"economists" who see liberty as instrumental to productivity, rather
than the other way around.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 9:19 ` Andreas Schwab
2008-03-29 9:58 ` David Kastrup
@ 2008-03-30 5:49 ` Richard Stallman
2008-03-30 6:25 ` Jonathan Rockway
2008-03-31 0:00 ` Xavier Maillard
2 siblings, 1 reply; 236+ messages in thread
From: Richard Stallman @ 2008-03-30 5:49 UTC (permalink / raw)
To: Andreas Schwab; +Cc: xma, tlikonen, lennart.borgman, bazaar, emacs-devel
When an arbitrary political decision wipes away all technical arguments
it is not helping free software in any way.
The rule that GNU packages should support each other
helps make the GNU system as a whole work better.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 14:55 ` Randal L. Schwartz
2008-03-29 16:35 ` Óscar Fuentes
@ 2008-03-30 5:49 ` Richard Stallman
1 sibling, 0 replies; 236+ messages in thread
From: Richard Stallman @ 2008-03-30 5:49 UTC (permalink / raw)
To: Randal L. Schwartz; +Cc: bazaar, emacs-devel
Free software existed before we started GNU, but was few and
scattered; the only way you could use it was as add-ons to a non-free
system. The GNU system made it possible to use a computer and have
freedom.
The GNU Project's contribution was a legally enforcable license to ensure
share-and-share-alike for authors who chose to use the legal system to enforce
their politics.
The GNU Project developed a free operating system, GNU. (See
http://www.gnu.org/gnu/the-gnu-project.html.) To do this, we
developed many programs, which are GNU packages. We still develop
more GNU packages and also accept existing programs into the GNU
Project when their developers wish.
As a supporting activity, we also developed a license for releasing
these programs as free software and defend freedom for all users.
That is the GNU GPL.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-30 5:49 ` Richard Stallman
@ 2008-03-30 6:25 ` Jonathan Rockway
2008-03-30 19:56 ` Richard Stallman
0 siblings, 1 reply; 236+ messages in thread
From: Jonathan Rockway @ 2008-03-30 6:25 UTC (permalink / raw)
To: Emacs Devel
* On Sun, Mar 30 2008, Richard Stallman wrote:
> When an arbitrary political decision wipes away all technical arguments
> it is not helping free software in any way.
>
> The rule that GNU packages should support each other
> helps make the GNU system as a whole work better.
Why can't we just make git part of the GNU system? Is it a copyright
assignment thing?
--
print just => another => perl => hacker => if $,=$"
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-30 6:25 ` Jonathan Rockway
@ 2008-03-30 19:56 ` Richard Stallman
0 siblings, 0 replies; 236+ messages in thread
From: Richard Stallman @ 2008-03-30 19:56 UTC (permalink / raw)
To: Jonathan Rockway; +Cc: emacs-devel
Why can't we just make git part of the GNU system?
We could include it in the GNU system, but its developers are not
likely to want to make it a GNU package.
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 4:34 ` David Cournapeau
@ 2008-03-31 0:00 ` Xavier Maillard
0 siblings, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-31 0:00 UTC (permalink / raw)
To: David Cournapeau
Cc: bazaar, rms, lennart.borgman, emacs-devel, monnier, tlikonen
Xavier Maillard wrote:
> What's more, it takes really long time to perform things even
> with a pretty new bazaar repository. I have switched a few
> projects just to take measure and no matter how big is the
> history, all operations are rather expensive in time compared to
> any other DVC I am using.
That's strange. Are you comparing to mercurial or git ? Which version of
bzr were you using (bzr --version) ?
I am using bzr.dev.
> As my python skills are rather small, I can't contribute much
> to help "profiling" the code.
>
I think giving the name of the projects (if they are open source) and
the commands you were using would be enough to see an eventual problem.
I don't have experience for large projects with long history (the
biggest project I use bzr with is ~ 2000 files with ~ 4000 revisions),
but I compared those with mercurial a few months ago, and they were
comparable in speed for branch/st/ci/diff commands (log and blame were
much slower, but again, if there is no history, I don't think that's
what you are talking about).
The major bottleneck happens with GNU Emacs repository. My
projetcs are pretty small (in files and revisions) but they
"lag".
Xavier
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 9:19 ` Andreas Schwab
2008-03-29 9:58 ` David Kastrup
2008-03-30 5:49 ` Richard Stallman
@ 2008-03-31 0:00 ` Xavier Maillard
2 siblings, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-31 0:00 UTC (permalink / raw)
To: Andreas Schwab; +Cc: dhruvakm, emacs-devel, tlikonen, lennart.borgman, bazaar
Xavier Maillard <xma@gnu.org> writes:
> I personally do not see a single mail which can tilt the scale
> in favor of bzr except it is part of GNU project.
>
> The "except it is part of GNU project" is the _main_ reason.
When an arbitrary political decision wipes away all technical arguments
it is not helping free software in any way.
Hopefully, a genius (or visionary) took a political/ethical
decision twenty years ago. Today, we have the GNU which is
technically and ethically superior to any other system available
around.
Souvenirs, souvenirs !
Xavier
^ permalink raw reply [flat|nested] 236+ messages in thread
* Re: Emacs repository benchmark: bzr and git
2008-03-29 10:13 ` dhruva
2008-03-29 10:26 ` David Kastrup
@ 2008-03-31 0:00 ` Xavier Maillard
1 sibling, 0 replies; 236+ messages in thread
From: Xavier Maillard @ 2008-03-31 0:00 UTC (permalink / raw)
To: dhruva; +Cc: bazaar, dak, schwab, lennart.borgman, emacs-devel, tlikonen
I personally find it odd to compare between a GNU product and another
GPL software. IMHO, we should be treating all GPLed softwares equally.
Hence, comparison between git and bzr can be termed as apple to apple
comparision.
Who will support GNU projects if even between GNU teams, we do
not support/promote them ? It's all about what RMS calls
"fairness".
We still can compare GNU bazaar with git, mercurial and al but we
_should_ concentrate on promoting GNU bazaar as part of the GNU.
I am a long time git user and will probably continue to use it
but I also want GNU bazaar to improve. So I trying to join and to
help in reaching this goal.
Xavier
^ permalink raw reply [flat|nested] 236+ messages in thread
end of thread, other threads:[~2008-03-31 0:00 UTC | newest]
Thread overview: 236+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-12 23:41 Emacs Bazaar repository Jason Earl
2008-03-13 1:48 ` Stefan Monnier
2008-03-13 1:52 ` dhruva
2008-03-13 2:26 ` Bastien
2008-03-13 2:28 ` Stefan Monnier
2008-03-13 3:12 ` dhruva
2008-03-13 4:06 ` Karl Fogel
2008-03-13 4:11 ` Jonathan Lange
2008-03-29 1:00 ` Xavier Maillard
2008-03-13 15:30 ` Karl Fogel
2008-03-13 15:58 ` dhruva
2008-03-13 16:50 ` Jason Earl
2008-03-13 20:18 ` How to spell "commit" [was: bikeshedding bzr (or similar) :] Stephen J. Turnbull
2008-03-13 4:09 ` Emacs Bazaar repository Karl Fogel
2008-03-13 4:15 ` Jonathan Lange
2008-03-13 4:30 ` Jonathan Lange
2008-03-14 1:11 ` Dan Nicolaescu
2008-03-14 1:51 ` Jason Earl
2008-03-14 5:10 ` Jonathan Lange
2008-03-13 9:58 ` Andreas Schwab
2008-03-13 22:13 ` Jonathan Lange
2008-03-14 10:27 ` Andreas Schwab
2008-03-14 10:36 ` David Kastrup
2008-03-13 5:08 ` Jason Earl
2008-03-13 10:39 ` Juanma Barranquero
2008-03-13 14:45 ` Stefan Monnier
2008-03-13 4:19 ` Eric Hanchrow
2008-03-13 5:20 ` Jason Earl
2008-03-13 8:04 ` dhruva
2008-03-13 9:04 ` Thien-Thi Nguyen
2008-03-13 9:41 ` David Kastrup
2008-03-13 12:08 ` Thien-Thi Nguyen
2008-03-13 23:46 ` Jonathan Lange
2008-03-14 2:52 ` dhruva
2008-03-14 3:00 ` Jason Earl
2008-03-14 3:03 ` Martin Pool
2008-03-14 5:36 ` Stephen J. Turnbull
2008-03-14 7:03 ` Martin Pool
2008-03-15 4:44 ` Stephen J. Turnbull
2008-03-14 10:30 ` Andreas Schwab
2008-03-14 15:02 ` Giorgos Keramidas
2008-03-13 11:20 ` James Westby
2008-03-13 16:37 ` Jason Earl
2008-03-13 7:43 ` Thien-Thi Nguyen
2008-03-13 8:49 ` Jason Earl
2008-03-13 9:07 ` Thien-Thi Nguyen
2008-03-13 13:11 ` Aaron Bentley
2008-03-13 11:43 ` Andreas Schwab
2008-03-13 11:55 ` David Kastrup
2008-03-14 9:58 ` Matthieu Moy
2008-03-14 10:42 ` Andreas Schwab
2008-03-14 12:24 ` Matthieu Moy
[not found] ` <8562053f49b38b1584b86e1e4d1ec6e6, vpqbq5htrwx.fsf@bauges.imag.fr>
2008-03-14 12:42 ` David Ingamells
2008-03-14 13:05 ` Andreas Schwab
2008-03-14 12:40 ` Eli Zaretskii
2008-03-14 8:23 ` John Arbash Meinel
2008-03-14 13:32 ` Andreas Schwab
2008-03-14 13:39 ` James Westby
2008-03-14 14:13 ` Matthieu Moy
2008-03-14 14:30 ` Andreas Schwab
2008-03-14 14:37 ` Nicholas Allen
2008-03-14 16:17 ` David Kastrup
2008-03-14 16:32 ` Daniel Mark Watkins
2008-03-14 15:15 ` David Allouche
2008-03-14 15:21 ` James Westby
2008-03-14 15:43 ` Matthieu Moy
2008-03-14 13:35 ` David Kastrup
2008-03-14 13:44 ` James Westby
2008-03-14 13:59 ` David Kastrup
2008-03-14 14:09 ` James Westby
2008-03-14 14:29 ` Nicholas Allen
2008-03-15 0:39 ` Stephen J. Turnbull
2008-03-15 10:30 ` James Westby
2008-03-15 12:30 ` James Westby
2008-03-14 23:34 ` Stephen J. Turnbull
2008-03-17 10:41 ` Matthieu Moy
2008-03-17 12:39 ` Sergei Organov
2008-03-18 1:48 ` Dan Nicolaescu
2008-03-18 2:13 ` dhruva
2008-03-18 4:03 ` Karl Fogel
2008-03-18 5:00 ` dhruva
2008-03-18 5:40 ` Jonathan Lange
2008-03-18 9:17 ` Andreas Schwab
2008-03-18 10:00 ` dhruva
2008-03-19 5:44 ` Bastien
2008-03-19 9:42 ` Juanma Barranquero
2008-03-19 14:04 ` Bastien
2008-03-19 14:49 ` Juanma Barranquero
2008-03-19 15:30 ` Bastien
2008-03-29 1:00 ` Xavier Maillard
2008-03-18 16:50 ` Stefan Monnier
2008-03-18 18:15 ` Juanma Barranquero
2008-03-20 14:00 ` Stefan Monnier
2008-03-20 14:10 ` Jason Rumney
2008-03-20 15:33 ` Stefan Monnier
2008-03-20 20:34 ` Eli Zaretskii
2008-03-21 12:51 ` dhruva
2008-03-29 1:00 ` Xavier Maillard
2008-03-18 19:31 ` Mike Mattie
2008-03-18 19:27 ` Richard Stallman
2008-03-18 20:05 ` Andreas Schwab
2008-03-18 20:26 ` Thien-Thi Nguyen
2008-03-22 4:23 ` Michael Olson
2008-03-22 11:18 ` Thien-Thi Nguyen
2008-03-24 6:19 ` Michael Olson
2008-03-25 9:36 ` Thien-Thi Nguyen
2008-03-20 1:04 ` Jonathan Lange
2008-03-18 20:58 ` Brian Cully
2008-03-18 21:13 ` Mike Mattie
2008-03-18 21:45 ` Stefan Monnier
2008-03-18 22:02 ` Jonathan Lange
2008-03-19 1:21 ` Stefan Monnier
2008-03-18 23:18 ` Chong Yidong
2008-03-18 23:46 ` Nick Roberts
2008-03-19 0:13 ` Thomas Lord
2008-03-19 0:17 ` Mike Mattie
2008-03-19 1:14 ` Thomas Lord
2008-03-19 0:12 ` Johannes Weiner
2008-03-26 7:56 ` David Kastrup
2008-03-27 22:22 ` Johannes Weiner
2008-03-29 1:00 ` Xavier Maillard
2008-03-14 12:56 ` dhruva
2008-03-14 13:10 ` Lennart Borgman (gmail)
2008-03-14 13:23 ` dhruva
2008-03-14 13:26 ` Andreas Schwab
2008-03-14 14:19 ` Matthieu Moy
2008-03-14 14:29 ` Lennart Borgman (gmail)
2008-03-15 0:43 ` Jonathan Rockway
2008-03-15 14:37 ` Eli Zaretskii
2008-03-15 15:06 ` dhruva
2008-03-15 0:44 ` Stephen J. Turnbull
2008-03-17 10:43 ` Matthieu Moy
2008-03-14 22:26 ` Martin Geisler
2008-03-15 12:09 ` dhruva
2008-03-15 21:32 ` Martin Geisler
2008-03-25 21:46 ` Giorgos Keramidas
2008-03-19 10:50 ` Sascha Wilde
2008-03-14 13:03 ` Andreas Schwab
2008-03-14 14:24 ` Matthieu Moy
2008-03-14 14:41 ` Andreas Schwab
2008-03-14 14:46 ` Jelmer Vernooij
2008-03-14 15:15 ` Andreas Schwab
2008-03-15 0:49 ` Harald Meland
2008-03-14 18:04 ` Dan Nicolaescu
2008-03-14 19:42 ` Stefan Monnier
2008-03-14 19:47 ` Andreas Schwab
2008-03-14 20:01 ` Mathias Dahl
2008-03-14 20:06 ` Andreas Schwab
2008-03-14 21:43 ` Karl Fogel
2008-03-15 0:00 ` Stephen J. Turnbull
2008-03-13 20:27 ` Eli Zaretskii
2008-03-14 10:23 ` Andreas Schwab
2008-03-14 3:56 ` Forest Bond
2008-03-14 10:32 ` Andreas Schwab
2008-03-14 11:28 ` Thomas Lord
2008-03-14 22:23 ` Stephen J. Turnbull
2008-03-14 23:49 ` Thomas Lord
2008-03-14 4:52 ` Jonathan Lange
2008-03-14 6:21 ` Dan Nicolaescu
2008-03-14 6:33 ` Alexander Belchenko
2008-03-14 7:16 ` Dan Nicolaescu
2008-03-14 9:18 ` Juanma Barranquero
2008-03-14 10:08 ` Matthew D. Fuller
2008-03-14 10:14 ` Juanma Barranquero
2008-03-19 16:31 ` Nicholas Allen
2008-03-14 10:35 ` Andreas Schwab
2008-03-14 10:37 ` Andreas Schwab
2008-03-14 11:30 ` Matt Nordhoff
2008-03-29 1:00 ` Xavier Maillard
2008-03-13 13:07 ` Andrea Russo
2008-03-14 9:16 ` Nicholas Allen
2008-03-13 14:18 ` Andreas Schwab
2008-03-14 18:08 ` Stefan Monnier
2008-03-14 18:35 ` Jason Earl
2008-03-14 18:51 ` Andreas Schwab
2008-03-14 19:15 ` Stefan Monnier
2008-03-14 19:32 ` Andreas Schwab
2008-03-14 20:12 ` Thomas Lord
2008-03-14 18:31 ` Goffredo Baroncelli
2008-03-16 18:57 ` Stefan Monnier
2008-03-16 19:53 ` Andreas Schwab
2008-03-17 15:00 ` Michael Haggerty
2008-03-17 16:37 ` Andreas Schwab
2008-03-16 21:47 ` Toshio Kuratomi
2008-03-18 15:43 ` Emacs repository benchmark: bzr and git Teemu Likonen
2008-03-18 15:51 ` Lennart Borgman (gmail)
2008-03-18 16:05 ` dhruva
2008-03-19 2:53 ` Richard Stallman
2008-03-27 1:32 ` Jonathan Lange
2008-03-27 2:24 ` Stephen J. Turnbull
2008-03-27 2:55 ` Stefan Monnier
2008-03-27 11:58 ` dhruva
2008-03-27 13:59 ` Vincent Ladeuil
2008-03-29 1:17 ` Stefan Monnier
2008-03-29 1:30 ` James Westby
2008-03-29 3:09 ` Stefan Monnier
2008-03-29 4:06 ` James Westby
2008-03-29 4:50 ` Stefan Monnier
2008-03-29 1:00 ` Xavier Maillard
2008-03-29 4:34 ` David Cournapeau
2008-03-31 0:00 ` Xavier Maillard
2008-03-29 1:00 ` Xavier Maillard
2008-03-29 9:19 ` Andreas Schwab
2008-03-29 9:58 ` David Kastrup
2008-03-29 10:13 ` dhruva
2008-03-29 10:26 ` David Kastrup
2008-03-31 0:00 ` Xavier Maillard
2008-03-29 14:55 ` Randal L. Schwartz
2008-03-29 16:35 ` Óscar Fuentes
2008-03-29 18:13 ` tomas
2008-03-29 21:05 ` Stephen J. Turnbull
2008-03-30 5:49 ` Richard Stallman
2008-03-30 5:49 ` Richard Stallman
2008-03-30 6:25 ` Jonathan Rockway
2008-03-30 19:56 ` Richard Stallman
2008-03-31 0:00 ` Xavier Maillard
2008-03-18 16:19 ` Matthieu Moy
2008-03-19 9:43 ` Teemu Likonen
2008-03-18 16:02 ` Matthieu Moy
2008-03-18 16:33 ` dhruva
2008-03-18 18:41 ` Jonathan Corbet
2008-03-19 1:40 ` dhruva
2008-03-18 21:04 ` Eli Zaretskii
2008-03-18 17:11 ` Teemu Likonen
2008-03-18 17:43 ` Stefan Monnier
2008-03-18 18:20 ` Juanma Barranquero
2008-03-18 16:43 ` Andreas Schwab
2008-03-18 19:19 ` Teemu Likonen
2008-03-18 20:22 ` James Westby
2008-03-19 11:37 ` Emacs repository benchmark: bzr and git (rerun) Teemu Likonen
2008-03-19 12:17 ` James Westby
2008-03-19 22:39 ` Robert Collins
2008-03-19 16:41 ` Teemu Likonen
2008-03-22 17:59 ` Emacs Bazaar repository Stefan Monnier
2008-03-22 19:59 ` Andreas Schwab
2008-03-24 7:53 ` Christian Faulhammer
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).