Re: About the OpenBSD repository

2009-06-27 Thread Timo Myyrä
On Fri, Jun 26, 2009 at 2:23 PM, Nidon...@foxserver.be wrote:
 Come on, it is fucking inefficient. The way it checks out *empty
 directories*
 and then garbage-collects them at the end of an update is beyond stupid.

 Not that i particularly care; but isn't git incapable of checking out
 empty directories?

 Besides that, it is perfectly possible to use git yourself privately
 alongside whatever the project is using; so I don't really get what
 the problem is.



Git tracks *contents* not files themselves.
Empty directories don't have content so they are ignored by git.

I too would like to see some nice BSD-licensed DVCS on OpenBSD.
I think that would be a major project to accomplish and I think I'd rather
see such energy go into developing OpenBSD, not developing the
development process :)

Timo



Re: About the OpenBSD repository

2009-06-26 Thread Marc Espie
On Tue, Jun 23, 2009 at 07:39:41AM -0500, Marco Peereboom wrote:
 Manure alert!
 
 On Tue, Jun 23, 2009 at 02:16:39PM +0200, Hannah Schroeter wrote:
  Hi!
  
  On Mon, Jun 22, 2009 at 02:11:21PM -0500, Marco Peereboom wrote:
  What is wrong with CVS?  And no I am not talking about the hypotheticals
  and some bugs that exist in the current code (that can also be easily
  worked around).
  
  - It's *slow* (once you've seen git's speed, both cvs and svn are snails
against it; hg and bzr might perhaps compare with it, though).
 
 It isn't slow.  I can check out a tree in a minute.  Here is a nickel
 kid go buy yourself some real disks.

Come on, it is fucking inefficient. The way it checks out *empty directories*
and then garbage-collects them at the end of an update is beyond stupid.



Re: About the OpenBSD repository

2009-06-26 Thread Tobias Ulmer
On Tue, Jun 23, 2009 at 02:17:30PM +0200, Hannah Schroeter wrote:
 Hi!
 
 On Mon, Jun 22, 2009 at 10:16:12PM +0100, Anil Madhavapeddy wrote:
 Pretty much every single new revision control system can import/export  
 from CVS, so use whatever you want...
 
 I tried git cvsimport on OpenBSD's tree and it failed, alas.
 cvs2svn doesn't grok some peculiarities of OpenBSD's tree either.

Sort of pointless to add more fuel to this discussion, but here it goes:


None of the cvs importers (known to me) can import the src tree.
They all parse the output of cvs log/rlog. That doesn't work because cvs
doesn't escape anything but what is necessary for its rcs file structure
(@ and stuff)

Various places in the src tree have commit messages that contain cvs
log output. panic(I'm confused! Halp!).

Migrating this is some work, likely involves writing your own rcs
parser...
Yes there is sed. If you have too much time in your hands and an amd64
(because it needs to handle 1G+ datasets), you may be able to make it
work. However everyone i've asked gave up.

Next step would be writing open(hg|git) with a license for real men (:P)

 
 Kind regards,
 
 Hannah.



Re: About the OpenBSD repository

2009-06-26 Thread Nido
 Come on, it is fucking inefficient. The way it checks out *empty
 directories*
 and then garbage-collects them at the end of an update is beyond stupid.

Not that i particularly care; but isn't git incapable of checking out
empty directories?

Besides that, it is perfectly possible to use git yourself privately
alongside whatever the project is using; so I don't really get what
the problem is.



Re: About the OpenBSD repository

2009-06-26 Thread Marc Espie
There's also ample room for improvements in some of the algorithms cvs
currently use. It positively SUCKS at merging stuff. It can't even work with
its own keywords properly.

I no longer count the number of times I've had a *conflict* after a merge
on code I committed myself in another tree, just because cvs is stupid enough
to not recognize $OpenBSD: 1.1$ vs. $OpenBSD: 1.3$

And we all know that branch-merging doesn't actually work. The process to
merge branches I used in the past was:
- create the diff I want to use
- checkout a pristine tree and apply the diff by hand.
- checkout the tree I'm going to work on.
- use the cvs merge/commit operations.
- wipe out the work tree
- cvs check out the result
- compare against what I would like to have.
- fix all the stupid mistakes cvs did.

YES, it is THAT bad. I've done enough gcc merges to know. Ask matthieu@ as 
well, each xorg merge shows traces of those issues as well.

In particular, cvs does resurrect files I explicitly deleted on the branch, 
for absolutely no good reason. The source code from GNU cvs is FULL of 
highly special cases that make absolutely NO SENSE in general, are totally 
non-documented, and were obviously hacked in because some stupid guy needed 
it for his own very special project with its own hackish rules.

I definitely have high hopes opencvs will be better in that regard eventually.
I don't care all that much for speed, but hey, when I see a version control
system do dumb mistakes it has no business doing, and needing me to fix
obvious stuff like that... there's MASSIVE room for improvements.



Re: About the OpenBSD repository

2009-06-24 Thread chefren

On 06/23/09 18:58, Theo de Raadt wrote:


Blah blah blah blah


That is clearly self describing...



You just like listening to yourself talk.  Shut up.


Pooh, pooh Mr Not Invented Here and We didn't learned that in our BSD 
Kindergarten.



Hannah is clearly just informative (as always!) and believes, with good 
reason and first hand experience, in what she proposes.


+++chefren



Re: About the OpenBSD repository

2009-06-23 Thread Mic J
 I was reading about version control systems and i found a lot of the
 distributed software with best performance, but really i don't know
 much
 about it.
 There are some technicals or philosophicals reasons why the OpenBSD
 repository does not change to something other than CVS?

Discussed much in archives, try also to search for opencvs, and i think you
will hit some information of why cvs. (i think!)

 You seem to make the assumption that _everything_ else is better than
 CVS.
 This may be your opinion, but that's all it is.

I can't see any assumption of that?

 Well, I suppose it is better than RCS or SCCS, and in some small ways,
 CVS even did things right that SVN gets wrong (namely, tags).  But to
 imply that CVS is better than (or equal to) Mercurial or Git is a bit
 ridiculous :)

Flamer! :)

 http://www.openbsd.org/why-cvs.html

 Because none of the above mentioned will allow for 70+ developers to
 update ~1.2GB/~140,000 files of source code, allow anonymous checkouts,
 has an available web based interface and interfaces with ssh. Instead
though
 non atomic commits, expensive branches and almost 20 years of work arounds
 are utilized.

SVN can definitely do  this, lost of large project are using it.
Ealier posts mentions distributed systems like Mercurial, and GIT.
They can definitely also do it.
it has webbased frontend, anonymous checkouts.

interfaces with ssh, what do you mean, SVN does that. Most systems
can send commands via ssh. so that should be no reason to not choose it.
Or is there some specific detail I am missing?

Mercurial is used by netbeans team, opensolaris, xen. Mozilla?
Im sure that is  quite large codebases.

Git is used by linux kernel devs, and that  has a ridiclous amount of code.
Comparable to the openbsd source tree.


I have used CVS, SVN, SVK(svn with repository mirroed locally), git,
mercurial
sourcesafe.

RCS (still use it, sometimes together with one of the other SCM systems)

I use mercurial right now for my own projects, having the repository
locally makes it much easier when travelling etc(offline situations),
i think. Could as well be
Git.


(i assumed you were on the look out for something to use yourself?)

mic



Re: About the OpenBSD repository

2009-06-23 Thread Artur Grabowski
Mic J michael.cogn...@gmail.com writes:

  But to
 imply that CVS is better than (or equal to) Mercurial or Git is a bit
 ridiculous :)

Mercurial and Git are crap.

 Because none of the above mentioned will allow for 70+ developers to
 update ~1.2GB/~140,000 files of source code, allow anonymous checkouts,
 has an available web based interface and interfaces with ssh. Instead
 though
 non atomic commits, expensive branches and almost 20 years of work arounds
 are utilized.

 SVN can definitely do  this, lost of large project are using it.

From two hours ago at work:

$ svn cleanup
svn: Working copy 'lib/common' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
$ svn cleanup lib/common
svn: Working copy 'lib/common' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
$ svn help cleanup
cleanup: Recursively clean up the working copy, removing locks, resuming
unfinished operations, etc.
usage: cleanup [PATH...]

Valid options:
  --diff3-cmd ARG  : use ARG as merge command

Global options:
  --username ARG   : specify a username ARG
  --password ARG   : specify a password ARG
  --no-auth-cache  : do not cache authentication tokens
  --non-interactive: do no interactive prompting
  --config-dir ARG : read user configuration files from directory ARG

$

ok. And of course the atomic commits are bullshit because even
though the commit failed and left a corrupted local checkout that I
had to manually nuke and then copy the right files over, it still did
commit some parts of my work. At least it didn't corrupt the database
like it did a year ago where we lost two days of work because the
only solution was to restore from backup. Now, only the tree was
broken until I could figure out wtf it was doing.

At least we know and understand the bugs and limitations of cvs.

You don't like it - don't use it, but god sake, stop telling people
what your favourite color is and why it should be their favourite
color too.

//art



Re: About the OpenBSD repository

2009-06-23 Thread Kenneth R Westerback
On Mon, Jun 22, 2009 at 07:13:51PM -0700, Mike Swanson wrote:
 Paul M wrote:
 On 23/06/2009, at 6:44 AM, Fernando Quintero wrote:
 
 Hello list,
 
 I have a question:
 
 I was reading about version control systems and i found a lot of the
 distributed software with best performance, but really i don't
 know much
 about it.
 There are some technicals or philosophicals reasons why the OpenBSD
 repository does not change to something other than CVS?
 
 
 You seem to make the assumption that _everything_ else is better
 than CVS.
 This may be your opinion, but that's all it is.
 
 
 paulm
 
 Well, I suppose it is better than RCS or SCCS, and in some small ways,
 CVS even did things right that SVN gets wrong (namely, tags).  But to
 imply that CVS is better than (or equal to) Mercurial or Git is a bit
 ridiculous :)

To assume that it is not superiour in the particular application
to which it is being put is also ridiculous. Having 1000 extra
features you don't use and will never use is not an advantage.

 Ken



Re: About the OpenBSD repository

2009-06-23 Thread Hannah Schroeter
Hi!

On Mon, Jun 22, 2009 at 10:16:12PM +0100, Anil Madhavapeddy wrote:
Pretty much every single new revision control system can import/export  
from CVS, so use whatever you want...

I tried git cvsimport on OpenBSD's tree and it failed, alas.
cvs2svn doesn't grok some peculiarities of OpenBSD's tree either.

Kind regards,

Hannah.



Re: About the OpenBSD repository

2009-06-23 Thread Hannah Schroeter
Hi!

On Mon, Jun 22, 2009 at 02:11:21PM -0500, Marco Peereboom wrote:
What is wrong with CVS?  And no I am not talking about the hypotheticals
and some bugs that exist in the current code (that can also be easily
worked around).

- It's *slow* (once you've seen git's speed, both cvs and svn are snails
  against it; hg and bzr might perhaps compare with it, though).

- How often you've seen people (devs with commit access) do development
  without committing it because it wasn't ready for prime time, then
  committing it in chunks that can't be grokked any more because they
  have accumulated for months or even over a year? You can't have
  off-site development branches in centralized version control systems.
  You *can* with distributed ones. You can merge them *and keep history*
  later somewhat easier than without having distributed vcs abilities.

- Non-committers can keep track of their local modifications in a more
  structured ways (because they can too have local inofficial branches)
  with a distributed vcs. So submission of patches can be more structured.

- Did I mention: most current dvcs are *fast*. And you can usually
  mirror the repo (just as cvsync does, just you don't need an addon
  tool for it).

- The history is still kept at a file level. While we see commit mails
  in a changeset form, if I want to look at what has been changed,
  I have to check per file (first cvs log, then cvs diff, or the
  equivalent thereof on the web). Even with svn I can do so with *one*
  svn log, then svn diff for the *whole* commit. With git I can do so
  with *one* git log -p for the whole commit (no further diff
  operation).

- Disconnected operation. With cvs I can do nearly nothing (related to
  version control, that is) offline. (Devs working on the plane,
  anyone?) With svn I can just check the status and the diff against
  the *current* pristine version. With git, for example, I can
  inspect the *whole* history up to now, and I can create new structured
  history from now. The only thing I can't do offline is get new
  history from others (upstream or other devs or other users) or
  export my new history (to an official repository or peer-to-peer to
  other users/devs).

- Sometimes even little features like git stash (put away uncommitted
  stuff for a moment in order to do something else, but ready to be
  retrieved again) or git add -i (prepare to only *selectively* commit
  changes) come handy.

- Oh, when I notice a mistake immediately after the fact, I can (a)mend
  it with git up to the moment I exported my history! Less of oops I
  committed this port to the wrong place. Of course without having
  to completely *manually* hacking the repository tree.

- For versioning local things (like /etc), I don't need to dedicate a
  completely different place for the repository. One .git directory
  is good enough for everything (where cvs needs a CVS/ directory for
  every directory in the working tree *and* a separate repository
  directory hierarchy). Same gripe about svn, btw (a .svn in every
  directory in the working directory, even more bloated than cvs,
  and a separate repository tree, also quite fat).

I have used just about all versioning systems, including ones that have
the price tag of islands in the pacific, and ultimately they all suck in
their special ways.  CVS works well-enough.

I beg to differ. I was somewhat relieved when we switched from cvs to
svn at work (for our work projects). svn does suck, too, of course. For
example, non-first-class tags and branches, big overhead in its working
copies, and it's slow too, but at least it has real versioning across
directory *trees*, so operations like ... log and ... diff actually make
sense, you can actually look at the history in a tree/changeset
granularity.

Nowadays I still scorn svn here. But at the same time, I dislike cvs
more. cvs up -APd on /usr/src, or /usr/ports is just *so slow* even
with a *local* (cvsync) mirror. Even with async,noatime mounts and
export CVSREADONLYFS=1. cvs commit is slow (and non-atomic!).

Nowadays I use git-svn to make working with the company's svn service a
bit more bearable. And I profit of the ability to keep local branches,
to exporting new history at a time when *I* see fit, etc.

Kind regards,

Hannah.



Re: About the OpenBSD repository

2009-06-23 Thread Hannah Schroeter
Hi!

On Mon, Jun 22, 2009 at 09:58:04PM -0500, Eugene Prodeguene wrote:
[...]

http://www.openbsd.org/why-cvs.html

Because none of the above mentioned will allow for 70+ developers to
update ~1.2GB/~140,000 files of source code, allow anonymous checkouts,
has an available web based interface and interfaces with ssh.

Now, that page uses outdated comparisons. Ok, cvs works better than
sup... Wow. sup is such a current comparison ;-)

Now, git allows even more efficient updates and checkins, both
authenticated via ssh, and anonymously. For anonymous readonly access
you don't need ssh, because git uses sha1 hashes for everything. (Ok,
the use of sha1 becomes more and more debatable, of course.) You can
even gpg sign tags if you like (but unsigned tags are also available,
and tags and branches are *cheap*, no churning through thousands of
files for creating a tag or branch!).

Of course it has a standard web interface, too. And it's more
convenient, because you can look at changes in changesets instead of
spreading *one* commit over all the files touched as if it were
independent changes.

git is very efficient both for deep history and quite large trees.

Just as an example (other dvcs seem to perform well too on those lines
of comparison).

Of course svn offers similar features too (web interface, of course, svn
via ssh or own service or https/dav). It has some drawbacks (I'm not a
great fan of it anymore): non-first-class tags/branches, bloated
working-directory format, bigger repository (IIRC git has one of the
most compact repository packing algorithms).

[...]

Kind regards,

Hannah.



Re: About the OpenBSD repository

2009-06-23 Thread Hannah Schroeter
Hi!

On Tue, Jun 23, 2009 at 12:48:33PM +0200, Artur Grabowski wrote:
Mic J michael.cogn...@gmail.com writes:

  But to
 imply that CVS is better than (or equal to) Mercurial or Git is a bit
 ridiculous :)

Mercurial and Git are crap.

Why do you think so? My experiences with git are quite good.

[...]

From two hours ago at work:

$ svn cleanup
svn: Working copy 'lib/common' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
$ svn cleanup lib/common
svn: Working copy 'lib/common' locked
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

Never happened for me.

ok. And of course the atomic commits are bullshit because even
though the commit failed and left a corrupted local checkout that I
had to manually nuke and then copy the right files over, it still did
commit some parts of my work. At least it didn't corrupt the database
like it did a year ago where we lost two days of work because the
only solution was to restore from backup. Now, only the tree was
broken until I could figure out wtf it was doing.

Never happened for me. That old Berkeley db stuff was shit, yes. fsfs
seems to do okish (though it's still bloated compared to git *g*). But I
didn't see half-commits. And at our companies we *did* switch to svn at
Berkeley db times. And I do know some points where svn sucks.

At least we know and understand the bugs and limitations of cvs.

You don't like it - don't use it, but god sake, stop telling people
what your favourite color is and why it should be their favourite
color too.

Of course I respect the right of the devs (and finally Theo) to choose.

Still I wanted to put forth what *I* (not you or other devs!) like about
other systems and what I came to dislike about cvs over the years (and
that me, who first was one pressuring to introduce cvs here at work in
the first place; then cvs was much better than no version control at
all, and then there were definitely no better alternatives available,
and first I wasn't really fond of the decision to switch to svn).

Kind regards,

Hannah.



Re: About the OpenBSD repository

2009-06-23 Thread Hannah Schroeter
Hi!

On Tue, Jun 23, 2009 at 08:11:42AM -0400, Kenneth R Westerback wrote:
[...]

To assume that it is not superiour in the particular application
to which it is being put is also ridiculous. Having 1000 extra
features you don't use and will never use is not an advantage.

If one hasn't tried it out, it's difficult to assume one would never use
features like disconnected operations (devs on planes), local/inofficial
branches (devs working on new features that aren't ready for prime time
yet; I'm committing this, disconnected from the build, so others can
work on it wouldn't be completely necessary either, for example, if
one could share experimental branches using a dvcs).

But even for traditional operations... I'm for example hooked on the
mere speed of git compared to svn or cvs even for a not so big tree
like a private web project. And even for that I use the fact that both
repositories are equals. At home, I commit to the local repository on
the home box. Elsewhere I might remote-login to a leased server where
another repository lies (and where also the http server is, using a 3rd
copy which always is on the public branch, while the other
repositories also have other branches). Or I might temporarily clone the
repository from the leased server, work locally (perhaps doing more
than one revision), then push the work (in one hunk!) back to the leased
server and publish (i.e. update the public branch to the http server's
directory). Especially over slow lines, definitely an advantage over
having only one central cvs/svn repo on the leased server and only
working copies on the other boxes. Local operations are *fast* (e.g.
switching from one branch to another with git checkout,
compared to cvs up -r... for switching the branch or svn switch or ...).

 Ken

Kind regards,

Hannah.



Re: About the OpenBSD repository

2009-06-23 Thread Marco Peereboom
Manure alert!

On Tue, Jun 23, 2009 at 02:16:39PM +0200, Hannah Schroeter wrote:
 Hi!
 
 On Mon, Jun 22, 2009 at 02:11:21PM -0500, Marco Peereboom wrote:
 What is wrong with CVS?  And no I am not talking about the hypotheticals
 and some bugs that exist in the current code (that can also be easily
 worked around).
 
 - It's *slow* (once you've seen git's speed, both cvs and svn are snails
   against it; hg and bzr might perhaps compare with it, though).

It isn't slow.  I can check out a tree in a minute.  Here is a nickel
kid go buy yourself some real disks.

 - How often you've seen people (devs with commit access) do development
   without committing it because it wasn't ready for prime time, then
   committing it in chunks that can't be grokked any more because they
   have accumulated for months or even over a year? You can't have
   off-site development branches in centralized version control systems.
   You *can* with distributed ones. You can merge them *and keep history*
   later somewhat easier than without having distributed vcs abilities.

Oh I guess the cvsync tree I have on my laptop and all my development
trees don't count.  This is all uninteresting blabbing of someone who
doesn't know how to use cvs.

 
 - Non-committers can keep track of their local modifications in a more
   structured ways (because they can too have local inofficial branches)
   with a distributed vcs. So submission of patches can be more structured.

see previous.

 
 - Did I mention: most current dvcs are *fast*. And you can usually
   mirror the repo (just as cvsync does, just you don't need an addon
   tool for it).

*yawn*

 
 - The history is still kept at a file level. While we see commit mails
   in a changeset form, if I want to look at what has been changed,
   I have to check per file (first cvs log, then cvs diff, or the
   equivalent thereof on the web). Even with svn I can do so with *one*
   svn log, then svn diff for the *whole* commit. With git I can do so
   with *one* git log -p for the whole commit (no further diff
   operation).

Sure you found a nice feature but hardly killer or worth any downtime
and relearning of some other retarded system that is full of unknown
bugs.

 
 - Disconnected operation. With cvs I can do nearly nothing (related to
   version control, that is) offline. (Devs working on the plane,
   anyone?) With svn I can just check the status and the diff against
   the *current* pristine version. With git, for example, I can
   inspect the *whole* history up to now, and I can create new structured
   history from now. The only thing I can't do offline is get new
   history from others (upstream or other devs or other users) or
   export my new history (to an official repository or peer-to-peer to
   other users/devs).

I do this all the time.  You have no idea about cvs.

 
 - Sometimes even little features like git stash (put away uncommitted
   stuff for a moment in order to do something else, but ready to be
   retrieved again) or git add -i (prepare to only *selectively* commit
   changes) come handy.

I would never remember that.  Not useful.

 
 - Oh, when I notice a mistake immediately after the fact, I can (a)mend
   it with git up to the moment I exported my history! Less of oops I
   committed this port to the wrong place. Of course without having
   to completely *manually* hacking the repository tree.

Lear to commit with a proper procedure and you don't have to rely on
hacks.

 
 - For versioning local things (like /etc), I don't need to dedicate a
   completely different place for the repository. One .git directory
   is good enough for everything (where cvs needs a CVS/ directory for
   every directory in the working tree *and* a separate repository
   directory hierarchy). Same gripe about svn, btw (a .svn in every
   directory in the working directory, even more bloated than cvs,
   and a separate repository tree, also quite fat).

Boooring

 
 I have used just about all versioning systems, including ones that have
 the price tag of islands in the pacific, and ultimately they all suck in
 their special ways.  CVS works well-enough.
 
 I beg to differ. I was somewhat relieved when we switched from cvs to
 svn at work (for our work projects). svn does suck, too, of course. For
 example, non-first-class tags and branches, big overhead in its working
 copies, and it's slow too, but at least it has real versioning across
 directory *trees*, so operations like ... log and ... diff actually make
 sense, you can actually look at the history in a tree/changeset
 granularity.

Now if it wouldn't shit itself all the time...

 
 Nowadays I still scorn svn here. But at the same time, I dislike cvs
 more. cvs up -APd on /usr/src, or /usr/ports is just *so slow* even
 with a *local* (cvsync) mirror. Even with async,noatime mounts and
 export CVSREADONLYFS=1. cvs commit is slow (and non-atomic!).

Coordinate your commits; problem solved.  These are the things people
point at 

Re: About the OpenBSD repository

2009-06-23 Thread Hannah Schroeter
Hi!

On Tue, Jun 23, 2009 at 07:39:41AM -0500, Marco Peereboom wrote:
Manure alert!

On Tue, Jun 23, 2009 at 02:16:39PM +0200, Hannah Schroeter wrote:
 On Mon, Jun 22, 2009 at 02:11:21PM -0500, Marco Peereboom wrote:
 What is wrong with CVS?  And no I am not talking about the hypotheticals
 and some bugs that exist in the current code (that can also be easily
 worked around).

 - It's *slow* (once you've seen git's speed, both cvs and svn are snails
   against it; hg and bzr might perhaps compare with it, though).

It isn't slow.  I can check out a tree in a minute.  Here is a nickel
kid go buy yourself some real disks.

Ok, just checked with git: Linux-2.6 tree.

Update after about one month:

I did by purpose separate the update into two parts: git fetch, then git
merge instead of the usual git pull, so I can measure timing separately.

git fetch origin (roughly equivalent to cvsync):
  about one minute, received a bit more than 17 MiB of data,
  roughly 8,5k changes (not files, but tree changes/commits) from
  the last update.

git merge origin/master (roughly equivalent to cvs up with appropriate
  options, up-to-date-check/check for conflicts, reset the local branch
  to the remote branch and checkout files):
  7738 files touched, 1m51 real time.

That's with a normal local desktop style disk, not with a high end raid
system or something like that. That is, a disk where it takes *several*
minutes to cvs up, and where it takes *several* minutes to check for
changes even after less time.

(time git status, i.e. check for local changes: less than 10 seconds on
the same tree).

 - How often you've seen people (devs with commit access) do development
   without committing it because it wasn't ready for prime time, then
   committing it in chunks that can't be grokked any more because they
   have accumulated for months or even over a year? You can't have
   off-site development branches in centralized version control systems.
   You *can* with distributed ones. You can merge them *and keep history*
   later somewhat easier than without having distributed vcs abilities.

Oh I guess the cvsync tree I have on my laptop and all my development
trees don't count.  This is all uninteresting blabbing of someone who
doesn't know how to use cvs.

I have a cvsync tree too. But your local trees etc. aren't versioned the
same way as they were with a dvcs. You can't commit to a cvsync tree the
same way as you can commit locally with a dvcs. (Because your local
commits would be overwritten on the next cvsync call.) You can, of
course, have several local checkouts from the local cvsync tree with
non-versioned, non-committed modifications. But if you have *one* strand
of local development going on where one step depends on the next one,
you can't version those steps in a structured *tool-supported* way with
a centralized version control system. (You can do so without tool
support if you copy out every version/commit to a separate directory
tree, which takes more time and space than a local commit in a dvcs.
That's about the same degree of organization as it was when one had
foo.c.version1, foo.c.version2 in times when our company didn't use
version control at all.)

 - Non-committers can keep track of their local modifications in a more
   structured ways (because they can too have local inofficial branches)
   with a distributed vcs. So submission of patches can be more structured.

see previous.

 - Did I mention: most current dvcs are *fast*. And you can usually
   mirror the repo (just as cvsync does, just you don't need an addon
   tool for it).

*yawn*

 - The history is still kept at a file level. While we see commit mails
   in a changeset form, if I want to look at what has been changed,
   I have to check per file (first cvs log, then cvs diff, or the
   equivalent thereof on the web). Even with svn I can do so with *one*
   svn log, then svn diff for the *whole* commit. With git I can do so
   with *one* git log -p for the whole commit (no further diff
   operation).

Sure you found a nice feature but hardly killer or worth any downtime
and relearning of some other retarded system that is full of unknown
bugs.

My experience is different. I deferred that learning curve for some
time, too, when friends already were telling of their (in their
experience, of course) good experiences with dvcs. Later I took some
spare time for that. Now even some co-workers sometimes moan about some
lacks of the company's centralized-only version control.

I haven't really, yet, stumbled over annoying problems of git, btw.

While OpenBSD committers seem to do so over problems of cvs, if I see
things right on source-chan...@.

 - Disconnected operation. With cvs I can do nearly nothing (related to
   version control, that is) offline. (Devs working on the plane,
   anyone?) With svn I can just check the status and the diff against
   the *current* pristine version. With git, for example, I can
   inspect the *whole* history up to 

Re: About the OpenBSD repository

2009-06-23 Thread Landry Breuil
Hi,

can we please stop this ?
Some devs are aware of dvcs advantages, some use them locally for their
own developments, some share things between some devs using dvcs public
repos, some thinks that CVS has some weaknesses (which *might* be adressed in
opencvs, once it is feature-compliant with gnucvs) some are against them
and don't want to hear about them (for their own reasons), we've already
discussed that at length on misc, there's no point in arguing more.

Thx.



Re: About the OpenBSD repository

2009-06-23 Thread Marco Peereboom
I used git twice.  Once I lost hours worth of work and the second time
it munged instead of merged the code.  No thanks.  If it works for you
great, now stop evangelizing some retarded versioning system that will
never, ever, ever, ever, ever be used in OpenBSD.

On Tue, Jun 23, 2009 at 03:16:59PM +0200, Hannah Schroeter wrote:
 Hi!
 
 On Tue, Jun 23, 2009 at 07:39:41AM -0500, Marco Peereboom wrote:
 Manure alert!
 
 On Tue, Jun 23, 2009 at 02:16:39PM +0200, Hannah Schroeter wrote:
  On Mon, Jun 22, 2009 at 02:11:21PM -0500, Marco Peereboom wrote:
  What is wrong with CVS?  And no I am not talking about the hypotheticals
  and some bugs that exist in the current code (that can also be easily
  worked around).
 
  - It's *slow* (once you've seen git's speed, both cvs and svn are snails
against it; hg and bzr might perhaps compare with it, though).
 
 It isn't slow.  I can check out a tree in a minute.  Here is a nickel
 kid go buy yourself some real disks.
 
 Ok, just checked with git: Linux-2.6 tree.
 
 Update after about one month:
 
 I did by purpose separate the update into two parts: git fetch, then git
 merge instead of the usual git pull, so I can measure timing separately.
 
 git fetch origin (roughly equivalent to cvsync):
   about one minute, received a bit more than 17 MiB of data,
   roughly 8,5k changes (not files, but tree changes/commits) from
   the last update.
 
 git merge origin/master (roughly equivalent to cvs up with appropriate
   options, up-to-date-check/check for conflicts, reset the local branch
   to the remote branch and checkout files):
   7738 files touched, 1m51 real time.
 
 That's with a normal local desktop style disk, not with a high end raid
 system or something like that. That is, a disk where it takes *several*
 minutes to cvs up, and where it takes *several* minutes to check for
 changes even after less time.
 
 (time git status, i.e. check for local changes: less than 10 seconds on
 the same tree).
 
  - How often you've seen people (devs with commit access) do development
without committing it because it wasn't ready for prime time, then
committing it in chunks that can't be grokked any more because they
have accumulated for months or even over a year? You can't have
off-site development branches in centralized version control systems.
You *can* with distributed ones. You can merge them *and keep history*
later somewhat easier than without having distributed vcs abilities.
 
 Oh I guess the cvsync tree I have on my laptop and all my development
 trees don't count.  This is all uninteresting blabbing of someone who
 doesn't know how to use cvs.
 
 I have a cvsync tree too. But your local trees etc. aren't versioned the
 same way as they were with a dvcs. You can't commit to a cvsync tree the
 same way as you can commit locally with a dvcs. (Because your local
 commits would be overwritten on the next cvsync call.) You can, of
 course, have several local checkouts from the local cvsync tree with
 non-versioned, non-committed modifications. But if you have *one* strand
 of local development going on where one step depends on the next one,
 you can't version those steps in a structured *tool-supported* way with
 a centralized version control system. (You can do so without tool
 support if you copy out every version/commit to a separate directory
 tree, which takes more time and space than a local commit in a dvcs.
 That's about the same degree of organization as it was when one had
 foo.c.version1, foo.c.version2 in times when our company didn't use
 version control at all.)
 
  - Non-committers can keep track of their local modifications in a more
structured ways (because they can too have local inofficial branches)
with a distributed vcs. So submission of patches can be more structured.
 
 see previous.
 
  - Did I mention: most current dvcs are *fast*. And you can usually
mirror the repo (just as cvsync does, just you don't need an addon
tool for it).
 
 *yawn*
 
  - The history is still kept at a file level. While we see commit mails
in a changeset form, if I want to look at what has been changed,
I have to check per file (first cvs log, then cvs diff, or the
equivalent thereof on the web). Even with svn I can do so with *one*
svn log, then svn diff for the *whole* commit. With git I can do so
with *one* git log -p for the whole commit (no further diff
operation).
 
 Sure you found a nice feature but hardly killer or worth any downtime
 and relearning of some other retarded system that is full of unknown
 bugs.
 
 My experience is different. I deferred that learning curve for some
 time, too, when friends already were telling of their (in their
 experience, of course) good experiences with dvcs. Later I took some
 spare time for that. Now even some co-workers sometimes moan about some
 lacks of the company's centralized-only version control.
 
 I haven't really, yet, stumbled over annoying problems 

Re: About the OpenBSD repository

2009-06-23 Thread Anil Madhavapeddy

On 23 Jun 2009, at 13:17, Hannah Schroeter wrote:


Hi!

On Mon, Jun 22, 2009 at 10:16:12PM +0100, Anil Madhavapeddy wrote:
Pretty much every single new revision control system can import/ 
export

from CVS, so use whatever you want...


I tried git cvsimport on OpenBSD's tree and it failed, alas.
cvs2svn doesn't grok some peculiarities of OpenBSD's tree either.


Don't import the whole tree; I just import sub-trees as I need them.   
E.g., for lynx:

http://github.com/avsm/openbsd-lynx-working/tree/master

It's easy to go back and forward, or at least quicker than changing  
the entire workflow of a project for.


-anil



Re: About the OpenBSD repository

2009-06-23 Thread Jacob Yocom-Piatt

Marco Peereboom wrote:

I used git twice.  Once I lost hours worth of work and the second time
it munged instead of merged the code.  No thanks.  If it works for you
great, now stop evangelizing some retarded versioning system that will
never, ever, ever, ever, ever be used in OpenBSD.
  



since it is *clear* that other vcs besides cvs will not be used, 
everyone should stop posting to this thread. this is an exercise in idiocy.




Re: About the OpenBSD repository

2009-06-23 Thread Theo de Raadt
[...]

To assume that it is not superiour in the particular application
to which it is being put is also ridiculous. Having 1000 extra
features you don't use and will never use is not an advantage.

If one hasn't tried it out, it's difficult to assume one would never use
features like disconnected operations (devs on planes), local/inofficial
branches (devs working on new features that aren't ready for prime time
yet; I'm committing this, disconnected from the build, so others can
work on it wouldn't be completely necessary either, for example, if
one could share experimental branches using a dvcs).

But even for traditional operations... I'm for example hooked on the
mere speed of git compared to svn or cvs even for a not so big tree
like a private web project. And even for that I use the fact that both
repositories are equals. At home, I commit to the local repository on
the home box. Elsewhere I might remote-login to a leased server where
another repository lies (and where also the http server is, using a 3rd
copy which always is on the public branch, while the other
repositories also have other branches). Or I might temporarily clone the
repository from the leased server, work locally (perhaps doing more
than one revision), then push the work (in one hunk!) back to the leased
server and publish (i.e. update the public branch to the http server's
directory). Especially over slow lines, definitely an advantage over
having only one central cvs/svn repo on the leased server and only
working copies on the other boxes. Local operations are *fast* (e.g.
switching from one branch to another with git checkout,
compared to cvs up -r... for switching the branch or svn switch or ...).

Blah blah blah blah

You just like listening to yourself talk.  Shut up.



Re: About the OpenBSD repository

2009-06-23 Thread Daniel Bolgheroni
On Mon, 22 Jun 2009, Fernando Quintero wrote:

 Hello list,
 
 I have a question:
 
 I was reading about version control systems and i found a lot of the
 distributed software with best performance, but really i don't know much
 about it.
 There are some technicals or philosophicals reasons why the OpenBSD
 repository does not change to something other than CVS?

To FAQ:

1. Why we use cvs?
2. Why we don't WANT to use svn, git, etc.?
3. What I should not question in an OpenBSD mailing list?
4. What am I doing here?

--
Daniel Bolgheroni m...@dbolgheroni.eng.br
FEI - Faculdade de Engenharia Industrial
http://www.dbolgheroni.eng.br/mykey

ASCII ribbon campaign ( )
 against HTML e-mail   X
  / \
mQGiBEjsKN8RBACIeANsMaUPV5vlbI0B1WGElqhLXdyR941fInJesLFUV+QlJ1Xi
qsmmCa2GTiz1SQm4g0N7FxOQeW42x9Iv0kg5vjwkZ7uC1LJDZlVvoThpnk007WYK
h19X+fbpQkK1kjWDd7TNiebDdvRcvVFJybSfGsqmrw/qufZ67HffLb9T2wCgx7ml
LjrFFlT3+18v6wy0T169DVsD/RU8fOfPwEK4Gc/BkfCB/JjHax2TYitMn9oNylYw
VdkuyFoaCEU2GmGP1/R1uT5U3TsKa0vIVBIiDTAOyZKhLgMejNyagKn4PuLcMyqo
CCV7uOPCuMsEFmXNDQekLhGpWlSD3vLoqr/mO0T867qZjIuQ9An58VLcX6LSdGtG
6yV7A/0fJ4fC2+RJWLmHPKb8sgNpjByt7NjaumAGVqPPtGu9M6indImBB0HB+S3O
7vM0pf6rzfE69D9zc0ySJJ3tCo/r4TdMrx/tx6wbz/7pyfsIRbsCG+87VxqInnEP
cg0zlN749NwBouPa2UTYMxXsJuv0OmX3W7EZ3vgL9lQ1BWzZn7QRRGFuaWVsIEJv
bGdoZXJvbmmIYAQTEQIAIAUCSOwo3wIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheA
AAoJEP423E9NZH/MPBMAmgNfL1njMlTBhhxiDdKsd6BLlcizAKCmVIP0jDarapBp
j7FUQgJ3npAvS7kBDQRI7CjfEAQAl6exFKqLkBCjr8s5XoadLpvSFE5faif5l6q6
HcfKP2FFtUfSj46cvCLVYzip78KJjxGkksS36rrrKfgHH7z+2Oem+G5drtvMWmeA
14tFvJGWHKL1WR5P1fe593aaw8CHmiQxSkENyVN+Q8FvqUoZ5tPtGqVzlPmflU5K
bcJphs8AAwUD/1CyyvbvMWNDPJLqZI1TiEkg3+2Kc67CFXhoS4DYCgObjnhA7GOO
BB0PXHPMhtwqIhCQA0+u2YOstreW1UT+zY3ynQbc7bnHmCdRzEmCRLSqe44+nWkY
QXD5tEOuMtAjJDQm7wQxRXA9EQouz4CLxz7uhEa5MJjoGdNkIqzDc/tCiEkEGBEC
AAkFAkjsKN8CGwwACgkQ/jbcT01kf8yHNQCfV+eHlKqAwdPfnM9IxGiKotVXeEYA
oKr5TGPxFG04Q3QnwX4+Acu78Svu
=mJV8
-END PGP PUBLIC KEY BLOCK-



Re: About the OpenBSD repository

2009-06-23 Thread Ted Unangst
On Wed, Jun 24, 2009 at 3:14 PM, Daniel Bolgheronim...@dbolgheroni.eng.br 
wrote:
 1. Why we use cvs?

It works [enough].

 2. Why we don't WANT to use svn, git, etc.?

See above.  Also, why would we want to?  (Don't answer that, you're wrong.)

 3. What I should not question in an OpenBSD mailing list?

The development process.  It's a good bet that the people who have
been developing OpenBSD for 10 years know more about how it's
developed than you do.



Re: About the OpenBSD repository

2009-06-23 Thread Daniel Bolgheroni
On Tue, 23 Jun 2009, Ted Unangst wrote:

 On Wed, Jun 24, 2009 at 3:14 PM, Daniel Bolgheronim...@dbolgheroni.eng.br 
 wrote:

  3. What I should not question in an OpenBSD mailing list?
 
 The development process.  It's a good bet that the people who have
 been developing OpenBSD for 10 years know more about how it's
 developed than you do.

Don't take these as my questions. I read this mailing list time enough 
to know this.

--
Daniel Bolgheroni m...@dbolgheroni.eng.br
FEI - Faculdade de Engenharia Industrial
http://www.dbolgheroni.eng.br/mykey

ASCII ribbon campaign ( )
 against HTML e-mail   X
  / \
mQGiBEjsKN8RBACIeANsMaUPV5vlbI0B1WGElqhLXdyR941fInJesLFUV+QlJ1Xi
qsmmCa2GTiz1SQm4g0N7FxOQeW42x9Iv0kg5vjwkZ7uC1LJDZlVvoThpnk007WYK
h19X+fbpQkK1kjWDd7TNiebDdvRcvVFJybSfGsqmrw/qufZ67HffLb9T2wCgx7ml
LjrFFlT3+18v6wy0T169DVsD/RU8fOfPwEK4Gc/BkfCB/JjHax2TYitMn9oNylYw
VdkuyFoaCEU2GmGP1/R1uT5U3TsKa0vIVBIiDTAOyZKhLgMejNyagKn4PuLcMyqo
CCV7uOPCuMsEFmXNDQekLhGpWlSD3vLoqr/mO0T867qZjIuQ9An58VLcX6LSdGtG
6yV7A/0fJ4fC2+RJWLmHPKb8sgNpjByt7NjaumAGVqPPtGu9M6indImBB0HB+S3O
7vM0pf6rzfE69D9zc0ySJJ3tCo/r4TdMrx/tx6wbz/7pyfsIRbsCG+87VxqInnEP
cg0zlN749NwBouPa2UTYMxXsJuv0OmX3W7EZ3vgL9lQ1BWzZn7QRRGFuaWVsIEJv
bGdoZXJvbmmIYAQTEQIAIAUCSOwo3wIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheA
AAoJEP423E9NZH/MPBMAmgNfL1njMlTBhhxiDdKsd6BLlcizAKCmVIP0jDarapBp
j7FUQgJ3npAvS7kBDQRI7CjfEAQAl6exFKqLkBCjr8s5XoadLpvSFE5faif5l6q6
HcfKP2FFtUfSj46cvCLVYzip78KJjxGkksS36rrrKfgHH7z+2Oem+G5drtvMWmeA
14tFvJGWHKL1WR5P1fe593aaw8CHmiQxSkENyVN+Q8FvqUoZ5tPtGqVzlPmflU5K
bcJphs8AAwUD/1CyyvbvMWNDPJLqZI1TiEkg3+2Kc67CFXhoS4DYCgObjnhA7GOO
BB0PXHPMhtwqIhCQA0+u2YOstreW1UT+zY3ynQbc7bnHmCdRzEmCRLSqe44+nWkY
QXD5tEOuMtAjJDQm7wQxRXA9EQouz4CLxz7uhEa5MJjoGdNkIqzDc/tCiEkEGBEC
AAkFAkjsKN8CGwwACgkQ/jbcT01kf8yHNQCfV+eHlKqAwdPfnM9IxGiKotVXeEYA
oKr5TGPxFG04Q3QnwX4+Acu78Svu
=mJV8
-END PGP PUBLIC KEY BLOCK-



About the OpenBSD repository

2009-06-22 Thread Fernando Quintero
Hello list,

I have a question:

I was reading about version control systems and i found a lot of the
distributed software with best performance, but really i don't know much
about it.
There are some technicals or philosophicals reasons why the OpenBSD
repository does not change to something other than CVS?

Thanks in advanced.


-- 
--

Fernando Quintero
http://nonroot.blogspot.com/
*Just a nonroot User*



Re: About the OpenBSD repository

2009-06-22 Thread Marco Peereboom
If it ain't broken don't fix it.

What is wrong with CVS?  And no I am not talking about the hypotheticals
and some bugs that exist in the current code (that can also be easily
worked around).

I have used just about all versioning systems, including ones that have
the price tag of islands in the pacific, and ultimately they all suck in
their special ways.  CVS works well-enough.

On Mon, Jun 22, 2009 at 01:44:45PM -0500, Fernando Quintero wrote:
 Hello list,
 
 I have a question:
 
 I was reading about version control systems and i found a lot of the
 distributed software with best performance, but really i don't know much
 about it.
 There are some technicals or philosophicals reasons why the OpenBSD
 repository does not change to something other than CVS?
 
 Thanks in advanced.
 
 
 -- 
 --
 
 Fernando Quintero
 http://nonroot.blogspot.com/
 *Just a nonroot User*



Re: About the OpenBSD repository

2009-06-22 Thread Anil Madhavapeddy
Pretty much every single new revision control system can import/export  
from CVS, so use whatever you want...


-anil

On 22 Jun 2009, at 19:44, Fernando Quintero wrote:


Hello list,

I have a question:

I was reading about version control systems and i found a lot of the
distributed software with best performance, but really i don't  
know much

about it.
There are some technicals or philosophicals reasons why the OpenBSD
repository does not change to something other than CVS?

Thanks in advanced.


--
--

Fernando Quintero
http://nonroot.blogspot.com/
*Just a nonroot User*




Re: About the OpenBSD repository

2009-06-22 Thread Paul M

On 23/06/2009, at 6:44 AM, Fernando Quintero wrote:


Hello list,

I have a question:

I was reading about version control systems and i found a lot of the
distributed software with best performance, but really i don't know 
much

about it.
There are some technicals or philosophicals reasons why the OpenBSD
repository does not change to something other than CVS?



You seem to make the assumption that _everything_ else is better than 
CVS.

This may be your opinion, but that's all it is.


paulm



Re: About the OpenBSD repository

2009-06-22 Thread Mike Swanson

Paul M wrote:

On 23/06/2009, at 6:44 AM, Fernando Quintero wrote:


Hello list,

I have a question:

I was reading about version control systems and i found a lot of the
distributed software with best performance, but really i don't know 
much

about it.
There are some technicals or philosophicals reasons why the OpenBSD
repository does not change to something other than CVS?



You seem to make the assumption that _everything_ else is better than 
CVS.

This may be your opinion, but that's all it is.


paulm


Well, I suppose it is better than RCS or SCCS, and in some small ways,
CVS even did things right that SVN gets wrong (namely, tags).  But to
imply that CVS is better than (or equal to) Mercurial or Git is a bit
ridiculous :)



Re: About the OpenBSD repository

2009-06-22 Thread Eugene Prodeguene

On Mon, 22 Jun 2009, Mike Swanson wrote:


Paul M wrote:

On 23/06/2009, at 6:44 AM, Fernando Quintero wrote:


Hello list,

I have a question:

I was reading about version control systems and i found a lot of the
distributed software with best performance, but really i don't know much
about it.
There are some technicals or philosophicals reasons why the OpenBSD
repository does not change to something other than CVS?



You seem to make the assumption that _everything_ else is better than CVS.
This may be your opinion, but that's all it is.


paulm


Well, I suppose it is better than RCS or SCCS, and in some small ways,
CVS even did things right that SVN gets wrong (namely, tags).  But to
imply that CVS is better than (or equal to) Mercurial or Git is a bit
ridiculous :)



http://www.openbsd.org/why-cvs.html

Because none of the above mentioned will allow for 70+ developers to
update ~1.2GB/~140,000 files of source code, allow anonymous checkouts,
has an available web based interface and interfaces with ssh. Instead 
though non atomic commits, expensive branches and almost 20 years of 
work arounds are utilized.


Eugenio.



Re: About the OpenBSD repository

2009-06-22 Thread Abel Camarillo
On Mon, Jun 22, 2009 at 07:13:51PM -0700, Mike Swanson wrote:
 Paul M wrote:
 On 23/06/2009, at 6:44 AM, Fernando Quintero wrote:

 Hello list,

 I have a question:

 I was reading about version control systems and i found a lot of the
 distributed software with best performance, but really i don't know 
 much
 about it.
 There are some technicals or philosophicals reasons why the OpenBSD
 repository does not change to something other than CVS?


 You seem to make the assumption that _everything_ else is better than  
 CVS.
 This may be your opinion, but that's all it is.


 paulm

 Well, I suppose it is better than RCS or SCCS, and in some small ways,
 CVS even did things right that SVN gets wrong (namely, tags).  But to
 imply that CVS is better than (or equal to) Mercurial or Git is a bit
 ridiculous :)


Well the OpenBSD devs have only read completely the source of CVS, and
developed OpenCVS, so (i think) that they don't want to use another thing
that they don't fully understand, and isn't BSD/ISC licensed (like
mercurial or git).

well that's my guess.

also: read the archives, this has been discuted sometimes.

-- 
DISCLAIMER: http://goldmark.org/jeff/stupid-disclaimers/ 
This message will self-destruct in 3 seconds.