Re: [Python-Dev] Fwd: Distributed RCS

2005-08-15 Thread Benji York
Martin v. Löwis wrote:
 [EMAIL PROTECTED] wrote:
Granted.  What is the cost of waiting a bit longer to see if it (or
something else) gets more usable and would hit the mark better than svn?
 
 It depends on what a bit is. Waiting a month would be fine; waiting
 two years might be pointless.

This might be too convoluted to consider, but I thought I might throw it 
out there.  We use svn for our repositories, but I've taken to also 
using bzr so I can do local commits and reversions (within a particular 
svn reversion).  I can imagine expanding that usage to sharing branches 
and such via bzr (or mercurial, which looks great), but keeping the 
trunk in svn.
--
Benji York
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-15 Thread Donovan Baarda
On Mon, 2005-08-15 at 04:30, Benji York wrote:
 Martin v. Löwis wrote:
  [EMAIL PROTECTED] wrote:
 Granted.  What is the cost of waiting a bit longer to see if it (or
 something else) gets more usable and would hit the mark better than svn?
  
  It depends on what a bit is. Waiting a month would be fine; waiting
  two years might be pointless.
 
 This might be too convoluted to consider, but I thought I might throw it 
 out there.  We use svn for our repositories, but I've taken to also 
 using bzr so I can do local commits and reversions (within a particular 
 svn reversion).  I can imagine expanding that usage to sharing branches 
 and such via bzr (or mercurial, which looks great), but keeping the 
 trunk in svn.

Not too convoluted at all; I already do exactly this with many upstream
CVS and SVN repositorys, using a local PRCS for my own branches. I'm
considering switching to a distributed RCS for my own branches because
it would make it easier for others to share them.

I think this probably is the best solution; it gives a reliable(?)
centralised RCS for the trunk, but allows distributed development.

-- 
Donovan Baarda [EMAIL PROTECTED]

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread skip
Anthony The current bazaar, last time I looked (a few months ago) did
Anthony not work on Windows. This is a complete deal-breaker for us,

I assume it would be a deal breaker for many people.  According to the
Bazaar-NG website it works on Linux, Windows and Mac OS X, or any system
with a Python interpreter.  If it's that platform-independent, perhaps it
will work on some systems that don't support CVS.  It does require Python
2.4, though I doubt that would be a great hardship for many people
interested in Python development.

Skip
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Martin v. Löwis
Guido van Rossum wrote:
 With permission, I'm forwarding an email from Mark Shuttleworth about
 Bazaar-2 (aka Bazaar-NG), a distributed source control system (not
 entirely unlike bitkeeper, I presume) written in Python and in use by
 the Ubuntu system. What do people think of using this for Python? Is
 it the right model? 

Like Skip, I tried experimenting with it. While that may be the right
model, I don't think it is the right software. In bazaar-ng 0.0.5 (which
is what Debian unstable currently has), bzr commit would not open
a text editor, but require the commit message on the command line;
selective commit of only some of the changed files is also not
supported. bzr diff cannot show the changes between two revisions,
and cannot show revisions across branches.

So I assume that using bazaar-ng right now would cause problems in
day-to-day usage.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread skip

Martin Like Skip, I tried experimenting with it.  While that may be the
Martin right model, I don't think it is the right software. [problems
Martin elided]

Martin So I assume that using bazaar-ng right now would cause problems
Martin in day-to-day usage.

Granted.  What is the cost of waiting a bit longer to see if it (or
something else) gets more usable and would hit the mark better than svn?  I
presume that once we switch away from cvs to something else, it's unlikely
we would switch again unless some huge roadblock appeared that made the
initial change the wrong one.

I was amazed at the number of different version control systems out there
now.  CVS, while enormously successful from a practical standpoint, clearly
has its detractors.  That there are so many alternatives suggests that it's
not clear yet what the correct feature set for a version control system
is.

Skip
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Martin v. Löwis
[EMAIL PROTECTED] wrote:
 Granted.  What is the cost of waiting a bit longer to see if it (or
 something else) gets more usable and would hit the mark better than svn?  I
 presume that once we switch away from cvs to something else, it's unlikely
 we would switch again unless some huge roadblock appeared that made the
 initial change the wrong one.

It depends on what a bit is. Waiting a month would be fine; waiting
two years might be pointless.

So I think I will personally pursue PEP 347 (switching to SVN); it will
be then an issue of BDFL pronouncement.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Neil Schemenauer
On Sun, Aug 14, 2005 at 06:16:11PM +0200, Martin v. Löwis wrote:
 It depends on what a bit is. Waiting a month would be fine; waiting
 two years might be pointless.

It looks like the process of converting a CVS repository to
Bazaar-NG does not yet work well (to be kind).  The path
CVS-SVN-bzr would probably work better.  I suspect cvs2svn has
been used on quite a few CVS repositories already.  I don't think
going to SVN first would lose any information.

My vote is to continue with the migration to SVN.  We can
re-evaluate Bazaar-NG at a later time.

  Neil
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Guido van Rossum
On 8/14/05, Neil Schemenauer [EMAIL PROTECTED] wrote:
 It looks like the process of converting a CVS repository to
 Bazaar-NG does not yet work well (to be kind).  The path
 CVS-SVN-bzr would probably work better.  I suspect cvs2svn has
 been used on quite a few CVS repositories already.  I don't think
 going to SVN first would lose any information.
 
 My vote is to continue with the migration to SVN.  We can
 re-evaluate Bazaar-NG at a later time.

That's looks like a fair assessment -- although it means twice the
conversion pain for developers.

It sounds as if bazaar-NG can use a bit of its own medicine -- I hope
everybody who found a bug in their tools submitted a patch! :-)

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Neal Becker
I encourage everyone to look at mercurial.  It is also written in Python.  I
am using it daily.

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Gustavo Niemeyer
 Like Skip, I tried experimenting with it. While that may be the right
 model, I don't think it is the right software. In bazaar-ng 0.0.5 (which
 is what Debian unstable currently has), bzr commit would not open
 a text editor, but require the commit message on the command line;
 selective commit of only some of the changed files is also not
 supported. bzr diff cannot show the changes between two revisions,

The development version has all of those features implemented already.

 and cannot show revisions across branches.

I'm not sure about this one, though.

-- 
Gustavo Niemeyer
http://niemeyer.net
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Martin v. Löwis
Guido van Rossum wrote:
 It sounds as if bazaar-NG can use a bit of its own medicine -- I hope
 everybody who found a bug in their tools submitted a patch! :-)

I had problems finding the place where the bazaar-NG source code
repository is stored - is there a public access to the HEAD version?
There also doesn't appear to be a bug tracker - but I found a mentioning
that bug reports should go to the mailing list.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Daniel Berlin
On Sun, 2005-08-14 at 11:12 -0600, Neil Schemenauer wrote:
 On Sun, Aug 14, 2005 at 06:16:11PM +0200, Martin v. Löwis wrote:
  It depends on what a bit is. Waiting a month would be fine; waiting
  two years might be pointless.
 
 It looks like the process of converting a CVS repository to
 Bazaar-NG does not yet work well (to be kind).  The path
 CVS-SVN-bzr would probably work better.  I suspect cvs2svn has
 been used on quite a few CVS repositories already.  I don't think
 going to SVN first would lose any information.

It doesn't.

As a data point, CVS2SVN can handle gcc's massive cvs repository, which
has merged rcs file information in it dating back to 1987, 1000 tags,
and  300 branches.

Besides monotone's cvs_import, it's actually the only properly designed
cvs converter I've seen in a while (Properly designed in that it
actually uses the necessary and correct algorithms to get all the
weirdities of cvs branches and tags right).

I'm not sure how big python's repo is, but you probably want to use the
attached patch to speed up cvs2svn.  It changes it to reconstruct the
revisions on it's own instead of calling cvs or rcs.  For GCC, and KDE,
this makes a significant difference (17 hours for our 4 gig cvs repo
convresion instead of 52 hours), because it was spawning cvs/rcs 50
billion times, and the milliseconds add up :)


 My vote is to continue with the migration to SVN.  We can
 re-evaluate Bazaar-NG at a later time.
GCC is moving to SVN (very soon now, within 2 months), and this has been
my viewpoint as well.

It's much easier to go from something that has changesets and global
revisions, to a distributed system, if you want to, than it is to try to
reconstruct that info from CVS on your own :).

Subversion also has excellent language bindings, including the python
bindings.  That's how i've hooked it up to gcc's bugzilla.  You could
easily write something to transform *from* subversion to another system
using the bindings.

Things like viewcvs use the python bindings to deal with the svn
repository entirely.  

--Dan

Index: cvs2svn
===
--- cvs2svn (revision 1423)
+++ cvs2svn (working copy)
@@ -166,6 +166,10 @@
 # grouping.  See design-notes.txt for details.
 DATAFILE = 'cvs2svn-data'
 
+REVISIONS_DB = 'cvs2svn-cvsrepo.db'
+
+CHECKOUT_DB = 'cvs2svn-cvsco.db'
+
 # This file contains a marshalled copy of all the statistics that we
 # gather throughout the various runs of cvs2svn.  The data stored as a
 # marshalled dictionary.
@@ -355,40 +359,7 @@
 cvsroot\n % (error_prefix, cvsroot, fname))
   sys.exit(1)
 
-def get_co_pipe(c_rev, extra_arguments=None):
-  Return a command string, and the pipe created using that string.
-  C_REV is a CVSRevision, and EXTRA_ARGUMENTS is used to add extra
-  arguments.  The pipe returns the text of that CVS Revision.
-  ctx = Ctx()
-  if extra_arguments is None:
-extra_arguments = []
-  if ctx.use_cvs:
-pipe_cmd = [ 'cvs' ] + ctx.cvs_global_arguments + \
-   [ 'co', '-r' + c_rev.rev, '-p' ] + extra_arguments + \
-   [ ctx.cvs_module + c_rev.cvs_path ];
-  else:
-pipe_cmd = [ 'co', '-q', '-x,v', '-p' + c_rev.rev ] + extra_arguments + \
-   [ c_rev.rcs_path() ]
-  pipe = SimplePopen(pipe_cmd, True)
-  pipe.stdin.close()
-  return pipe_cmd, pipe
-
-def generate_ignores(c_rev):
-  # Read in props
-  pipe_cmd, pipe = get_co_pipe(c_rev)
-  buf = pipe.stdout.read(PIPE_READ_SIZE)
-  raw_ignore_val = 
-  while buf:
-raw_ignore_val = raw_ignore_val + buf
-buf = pipe.stdout.read(PIPE_READ_SIZE)
-  pipe.stdout.close()
-  error_output = pipe.stderr.read()
-  exit_status = pipe.wait()
-  if exit_status:
-sys.exit(%s: The command '%s' failed with exit status: %s\n
- and the following output:\n
- %s % (error_prefix, pipe_cmd, exit_status, error_output))
-
+def generate_ignores(raw_ignore_val):
   # Tweak props: First, convert any spaces to newlines...
   raw_ignore_val = '\n'.join(raw_ignore_val.split())
   raw_ignores = raw_ignore_val.split('\n')
@@ -614,9 +585,7 @@
 DB_OPEN_READ = 'r'
 DB_OPEN_NEW = 'n'
 
-# A wrapper for anydbm that uses the marshal module to store items as
-# strings.
-class Database:
+class SDatabase:
   def __init__(self, filename, mode):
 # pybsddb3 has a bug which prevents it from working with
 # Berkeley DB 4.2 if you open the db with 'n' (new).  This
@@ -635,22 +604,24 @@
 
 self.db = anydbm.open(filename, mode)
 
-  def has_key(self, key):
-return self.db.has_key(key)
+  def __getattr__(self, name):
+return getattr(self.db, name)
 
+# A wrapper for anydbm that uses the marshal module to store items as
+# strings.
+class Database(SDatabase):
+
   def __getitem__(self, key):
 return marshal.loads(self.db[key])
 
   def __setitem__(self, key, value):
 self.db[key] = marshal.dumps(value)
 
-  def __delitem__(self, key):
-del self.db[key]
-
   def 

Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Gustavo Niemeyer
 I had problems finding the place where the bazaar-NG source code
 repository is stored - is there a public access to the HEAD version?

You may use rsync:

  rsync -av --delete bazaar-ng.org::bazaar-ng/bzr/bzr.dev .

Or bzr itself:

  bzr branch http://bazaar-ng.org/bzr/bzr.dev

Regards,

-- 
Gustavo Niemeyer
http://niemeyer.net
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Martin v. Löwis
Daniel Berlin wrote:
 I'm not sure how big python's repo is, but you probably want to use the
 attached patch to speed up cvs2svn.  It changes it to reconstruct the
 revisions on it's own instead of calling cvs or rcs. 

Thanks for the patch, but cvs2svn works fairly well for us as is (in
the version that was released with Debian sarge); see

http://www.python.org/peps/pep-0347.html

for the conversion procedure. On the machine where I originally did
the conversion, the script required 7h; on my current machine, it is
done in 1:40 or so, which is acceptable.

Out of curiosity: do you use the --cvs-revnums parameter? Should we?

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Daniel Berlin
On Mon, 2005-08-15 at 00:15 +0200, Martin v. Löwis wrote:
 Daniel Berlin wrote:
  I'm not sure how big python's repo is, but you probably want to use the
  attached patch to speed up cvs2svn.  It changes it to reconstruct the
  revisions on it's own instead of calling cvs or rcs. 
 
 Thanks for the patch, but cvs2svn works fairly well for us as is (in
 the version that was released with Debian sarge); see
 
 http://www.python.org/peps/pep-0347.html
 
 for the conversion procedure. On the machine where I originally did
 the conversion, the script required 7h; on my current machine, it is
 done in 1:40 or so, which is acceptable.
 
 Out of curiosity: do you use the --cvs-revnums parameter? Should we?

No.  In our case, it doesn't buy us anything.

In the name of continuity, we have to make the old cvsweb urls work with
new viewcvs urls anyway (they appear in bug reports, etc). We also don't
want to destroy the ability for people to diff existing cvs working
copies.  I may have been able to hack something around with cvs-revnums,
but not easily.

Thus, we are just going to keep a readonly version of the repo around,
and a readonly cvsweb,  with a warning at the top of the page  that the
current source is stored in subversion.


 
 Regards,
 Martin

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-14 Thread Martin v. Löwis
Gustavo Niemeyer wrote:
 You may use rsync:
 
   rsync -av --delete bazaar-ng.org::bazaar-ng/bzr/bzr.dev .
 
 Or bzr itself:
 
   bzr branch http://bazaar-ng.org/bzr/bzr.dev

Ah, thanks. Fetching it with rsync is so much faster than fetching
it with bzr, though...

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-13 Thread Neil Schemenauer
On Sat, Aug 13, 2005 at 02:27:22PM -0700, Guido van Rossum wrote:
 What do people think of using this for Python?

I think it deserves consideration.  One idea would be to have a
Bazaar-NG repository that tracks the CVS SF repository.  I haven't
tried it yet but there is a tool called Tailor[1] that automates the
task.  That would give people a chance to experiment with Bazaar-NG
(and still work with SF is down) without committing to it.

 Is it the right model? Do we want to encourage widespread
 experimentation with the Python source code?

I think Python works fairly well with the centralized model.
However, I expect it's hard to know what we are missing.

  Neil

1. http://darcs.net/DarcsWiki/Tailor
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Fwd: Distributed RCS

2005-08-13 Thread Anthony Baxter
I have great hopes for baz-ng, but I don't know that it's really ready for 
production use just yet. I don't know that we want to be right out on the 
bleeding edge of revision control systems for Python. 

The current bazaar, last time I looked (a few months ago) did not work on 
Windows. This is a complete deal-breaker for us, unless we can agree to dump 
that Windows support (who needs it, really? wink) I *hope* that baz-ng will
work fine on Windows - I haven't looked too closely at that side of it.

Anthony 
-- 
Anthony Baxter [EMAIL PROTECTED]
It's never too late to have a happy childhood.
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com