Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Neil Conway
On 25-Mar-04, at 12:25 AM, Dustin Sallings wrote:
	It's definitely not a magic tool that makes bad code good and 
conflicting patches happy.  It solves other problems, though.
I don't think anything mentioned in this thread so far would be an 
enormous improvement over what we have now. However, I am still open to 
trying Arch or SVN: in the long run, I think the productivity gain from 
even an incremental improvement in the development toolset is worth a 
little effort in relearning and migration.

But as I said, I don't think it's a critical issue, and if other 
developers would rather we stick with what we have, that's fine with 
me.

WRT the relative merits of CVS, Arch, and SVN, David Wheeler (of 
Bricolage) has written an interesting article comparing the three 
systems:

http://www.dwheeler.com/essays/scm.html

I think the lack of good Win32 support (unless rectified before the 
release of 7.5) is a pretty major problem with Arch -- that alone might 
be sufficient to prevent us from adopting it.

-Neil

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Jan Wieck
Dustin Sallings wrote:

On Mar 24, 2004, at 20:29, Tom Lane wrote:

Not here.  You want me to trust some bit of code (with absolutely zero
understanding of the source text it's hacking on) to figure out how to
resolve conflicting patches?  That sounds like a recipe for big-time
unhappiness.
	The idea is that it's the responsibility of the branch owner to keep 
it up-to-date.  For example, I've got a branch of tla (an arch 
implementation) I made soon after I started using it in order to add a 
command I wanted and refactor a bit of the insides.  Over time, a lot 
of stuff has changed, but I still want my stuff to work, so as I update 
my branch against head of line, I make minor changes to it as things 
go.

	The difference is that instead of having a patch sitting in a queue 
somewhere suffering from bit-rot, you've got a pointer to a branch that 
you can merge when you get around to it.  You can still view it as a 
diff if you want, but the diff you get six months after the original 
submission may be quite a bit different from what you would've got at 
the beginning if a lot of the code around it has changed.
The difference here is that instead of submitting a patch for review, 
which is then frozen, the branch owner can (and that means some will, no 
matter what your intentions are) keep modifying the branch during the 
review process, other than just keeping it in sync with conflicting 
changes to the trunk. How do you plan to prevent that?

Jan

--
#==#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.  #
#== [EMAIL PROTECTED] #
---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
 joining column's datatypes do not match


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Andrew Dunstan
Neil Conway said:

 I don't think anything mentioned in this thread so far would be an
 enormous improvement over what we have now. However, I am still open to
  trying Arch or SVN: in the long run, I think the productivity gain
 from  even an incremental improvement in the development toolset is
 worth a  little effort in relearning and migration.


ISTM what we have here is a solution in search of a problem. When the
committers tell us that there is a problem we should start looking.


 But as I said, I don't think it's a critical issue, and if other
 developers would rather we stick with what we have, that's fine with
 me.


Maybe we should look at providing SVN as a project option on the new
PGFoundry. That might let at least a part of the community get its toes
wet with it, without disrupting the core in the first instance.


 I think the lack of good Win32 support (unless rectified before the
 release of 7.5) is a pretty major problem with Arch -- that alone might
  be sufficient to prevent us from adopting it.


Agreed. It's a killer from my POV.

cheers

andrew



---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Alvaro Herrera
On Thu, Mar 25, 2004 at 08:05:05AM -0500, Jan Wieck wrote:

 The difference here is that instead of submitting a patch for review, 
 which is then frozen, the branch owner can (and that means some will, no 
 matter what your intentions are) keep modifying the branch during the 
 review process, other than just keeping it in sync with conflicting 
 changes to the trunk. How do you plan to prevent that?

I think it's much better for the reviewer to be able to see the history
of changes of the patch (branch), without having to look at the whole
patch again every time a small change is made to it.

Or do you diff two versions of a patch to see if the author only changed
what he says he changed?  Wow, a diff of a diff, _that_ should be
difficult to read.

-- 
Alvaro Herrera (alvherre[a]dcc.uchile.cl)
Use it up, wear it out, make it do, or do without

---(end of broadcast)---
TIP 6: Have you searched our list archives?

   http://archives.postgresql.org


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Magnus Naeslund(t)
Dustin Sallings wrote:


 You can use distributed revision control systems as centralized
 systems, but not vice-versa.

Not true, the other way around exists, that is what svk does.

 As far as understanding the simplicity of arch (if you wanted to
 understand the problems it solves and implement it yourself), a really
 good presentation was posted today to the arch list that sums it up
 quickly and concisely.  It's hard to go through that and not think, ``I
 could write this.''

 http://web.verbum.org/tla/grokking-arch/grokking-arch.html

Will read it, thanks.

Regards,
Magnus
---(end of broadcast)---
TIP 5: Have you checked our extensive FAQ?
  http://www.postgresql.org/docs/faqs/FAQ.html


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Dustin Sallings
On Mar 25, 2004, at 5:05, Jan Wieck wrote:

The difference here is that instead of submitting a patch for review, 
which is then frozen, the branch owner can (and that means some will, 
no matter what your intentions are) keep modifying the branch during 
the review process, other than just keeping it in sync with 
conflicting changes to the trunk. How do you plan to prevent that?
	You do both.  Changesets are immutable.  A patch cannot be modified.  
However, new patches can be added for tracking changes to the tree.  
You can review the original diff, and you can review how it's tracked 
head-of-line changes independently.  You can take the original diff and 
manually wedge it in if you want, or you can see how the latest 
progress differs before submission.

--
Dustin Sallings
---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Dustin Sallings
On Mar 25, 2004, at 1:21, Neil Conway wrote:

I think the lack of good Win32 support (unless rectified before the 
release of 7.5) is a pretty major problem with Arch -- that alone 
might be sufficient to prevent us from adopting it.
	I don't do Windows, but my understanding is that tla is as well 
supported on Windows as postgres is.

	The design is fundamentally easy enough that a Windows user who cares 
could probably make a more suitable port for Windows than the UNIX guys 
are interested in making.  I've seen such discussions on the list.

--
Dustin Sallings
---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Dustin Sallings
On Mar 25, 2004, at 9:22, Magnus Naeslund(t) wrote:

 You can use distributed revision control systems as centralized
 systems, but not vice-versa.

Not true, the other way around exists, that is what svk does.
	From its description, svk sounds like a completely different system:

	``svk is a decentralized version control system written in Perl. It 
uses the subversion filesystem but provides some other powerful 
features.''

	I.e. it seems to have a CVS vs. RCS relationship.  It would be unfair 
to call CVS RCS.

--
Dustin Sallings
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Neil Conway
On 25-Mar-04, at 3:03 PM, Dustin Sallings wrote:
	I don't do Windows, but my understanding is that tla is as well 
supported on Windows as postgres is.
David Wheeler disagrees:

A serious weakness of arch is that it doesn't work well on 
Windows-based systems, and it's not clear if that will ever change. 
There are ports of arch, both non-native (Cygwin and Services for Unix) 
and a native port too. However, the current win32 port is only in its 
early stages, and the Win32 page on the Arch wiki says Arch was never 
intended to run on a non-POSIX system. Don't expect to have a full 
blown arch on your Microsoft computer. At least part of the problem is 
the long filenames used internally by arch; arch could certainly be 
modified to help, though there doesn't seem to be much movement in that 
direction. Other problematic areas include symbolic links, proper file 
permissions, and newline problems, as well as the general immaturity of 
the port as of March 2004. Some people don't think that poor Windows 
support is a problem; to me (and others!), that's a serious problem. 
Even if you don't use any Microsoft Windows systems, people don't want 
to use many different SCM systems, so if one can handle many 
environments and the other can't, people will use the one that can 
handle more environments. I think GNU Arch's use will be hampered by 
this lack of support as long as this is true, even for people who never 
use Windows; good native Windows support is very important for an SCM 
tool.

-Neil

---(end of broadcast)---
TIP 2: you can get off all lists at once with the unregister command
   (send unregister YourEmailAddressHere to [EMAIL PROTECTED])


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-25 Thread Thomas Swan
quote who=Dustin Sallings

 On Mar 25, 2004, at 1:21, Neil Conway wrote:

 I think the lack of good Win32 support (unless rectified before the
 release of 7.5) is a pretty major problem with Arch -- that alone
 might be sufficient to prevent us from adopting it.

   I don't do Windows, but my understanding is that tla is as well
 supported on Windows as postgres is.


It that like the best beach volleball player in Antarctica?  The Windows
port of Postgresql is still in its infancy.  It's coming along, but its
not a finished product.


   The design is fundamentally easy enough that a Windows user who cares
 could probably make a more suitable port for Windows than the UNIX guys
 are interested in making.  I've seen such discussions on the list.

 --
 Dustin Sallings


 ---(end of broadcast)---
 TIP 2: you can get off all lists at once with the unregister command
 (send unregister YourEmailAddressHere to [EMAIL PROTECTED])



---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Frank Wiles
On Tue, 23 Mar 2004 23:03:03 -0400 (AST)
Marc G. Fournier [EMAIL PROTECTED] wrote:

 On Tue, 23 Mar 2004, Sailesh Krishnamurthy wrote:
 
  Which brings me to another question .. has anybody considered using
  subversion instead of CVS ?
 
 Why?  not that I'm for a chance from something that isn't broken, but
 what advantages does subversion give us over what we already have?

  Subversion has lots of little benefits, but nothing that would be
  a major incentive to switch.  The biggest benefits I can think of
  of the top of my head are: 

  * Commits are actually atomic 
  * protocol sends diffs in both directions which speeds up everything
  * branching and tagging are cheap constant time operations

  * the time it takes to make changes is based on the size of the
change, not the size of the project

  * whole directories are versioned not just files.  So for example
if you for some reason wanted to rename src/backend/bootstrap.c
to src/backend/bootup.c you wouldn't lose your revision history
information.  Same thing goes for complete reorganizations of the
file layouts.  

  * You can checkout parts of a project so if you need to fix a
bug in 7.3.6's src/backend/ you only have to transfer that portion
to you.  

  * cvs diff ( well svn diff ) can be done offline.  Same with 'status'
which shows you your local modifications and 'revert' which reverts
your changes back to your last checkout/update/etc. 

  * Revisions numbers are repository wide instead of by file.  You can
refer to revision #14328 on hackers and everyone knows exactly what
you are talking about and can switch their working copies to it
easily ( svn switch -r 14328 ).  It's sort of like having a tag
for every commit made to the repository. 

  It does have some downsides that I have found, most notibly that the
  size of your sources you have in your working copy are essentially 
  doubled.  There is a copy in your .svn directory that allows the
  offline status, diff, and revert commands to work. 

 -
   Frank Wiles [EMAIL PROTECTED]
   http://frank.wiles.org
 -


---(end of broadcast)---
TIP 3: if posting/reading through Usenet, please send an appropriate
  subscribe-nomail command to [EMAIL PROTECTED] so that your
  message can get through to the mailing list cleanly


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Dustin Sallings
On Mar 24, 2004, at 7:29, Frank Wiles wrote:

[cool feature list]
	Arch has all of that except for the checking out part of a directory 
thing  (would you really just check out the backend, submit a change, 
and not build and test it?).

	Additionally:

	* Repositories can be easily replicated so checkouts don't have to 
cross slow networks.  I replicate every repository I work with to every 
machine I use.  This is not only my backup strategy, but it makes 
checkouts faster.

	* You can work completely offline.  In addition to being able to diff, 
undo changes, redo changes, etc... while offline, you can completely 
branch a project do multiple commits, and merge them back into the main 
archive when your plane lands.

	* Branches are not only cheap, but can easily cross repository 
boundaries.  Any given user can create a branch from the head-of-line 
tree and maintain changes, and the head-of-line maintainers can pull 
those changes back in.

	* Its storage is immutable.  It never modifies a file so it does not 
provide any possibility for corruption.  This is also what makes 
replication so trivial.

	* Changesets have cryptographic checksums and may be cryptographically 
signed.  Checkouts are authenticated against both of these.

	* Repositories can be accessed via a wide variety of means.  Most of 
mine are local file, WebDAV, or SFTP.  I allow read-only access via 
plain HTTP for anyone who wants to check out one of my projects.

	* Files can be tracked in a nearly (or completely) automatic fashion.  
Depending on project configuration, you can avoid having to interact 
with the revision control system other than writing changelogs and 
submitting patches.  You an also use CVS-style tracking (manual adds 
and deletes (plus moves)) if you're more comfortable that way.

	* The design is way, way more simple and transparent, there are far 
fewer requirements.  At least for me, this translates to a higher 
confidence that my stuff will always be available.

	The advantage I see to Subversion is that it's designed to be a better 
CVS.  Since many people are comfortable with CVS and that style of 
centralized development, it may feel a little more natural for new 
converts.  I feel that that's because it doesn't seem to take you very 
far.

--
Dustin Sallings
---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread David Garamond
Dustin Sallings wrote:
On Mar 24, 2004, at 11:45, David Garamond wrote:

So one might ask, what *will* motivate a die-hard CVS user? A 
real-close Bitkeeper clone? :-)
Since it's illegal for anyone who uses Bitkeeper's free license to 
contribute to another project, does anyone know if there are any 
features in Bitkeeper missing from arch (specifically tla) that matter 
to developers?  Or is there anything that may be a better match than arch?
From what I read here and there, BitKeeper excels primarily in merging 
(good merging is apparently a very complex and hard problem) and GUI stuffs.

Unfortunately, I have never and will never use Bitkeeper unless 
someone buys me a license for some reason.  The distributed model seems 
like the only way to go for the open source development of the future.
Not necessarily. For small to medium projects, a centralized model might 
work better.

--
dave
---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Dustin Sallings
On Mar 24, 2004, at 13:22, David Garamond wrote:

From what I read here and there, BitKeeper excels primarily in merging 
(good merging is apparently a very complex and hard problem) and GUI 
stuffs.
	There's not a lot of GUI in arch, but star-merge is fairly incredible. 
 This is how tla (the main arch implementation) itself is developed.  
Lots of branches in lots of archives by lots of people.

Unfortunately, I have never and will never use Bitkeeper unless 
someone buys me a license for some reason.  The distributed model 
seems like the only way to go for the open source development of the 
future.
Not necessarily. For small to medium projects, a centralized model 
might work better.
	I make use of the distributed nature of arch in my personal projects 
with no other developers.  Offline work is just a branch in another 
archive that gets merged in later.

	Arch supports a centralized model as well as anything else, and I've 
got a big centralized set of archives, but I don't always have good 
connectivity to the master.  This is where the distributed model wins.  
A server/network/whatever outage does not have the opportunity to slow 
me down.  In the worst case, a long outage causes my branch to drift a 
little further from head of line than it normally would.

--
Dustin Sallings
---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Christopher Kings-Lynne
  It does have some downsides that I have found, most notibly that the
  size of your sources you have in your working copy are essentially 
  doubled.  There is a copy in your .svn directory that allows the
  offline status, diff, and revert commands to work. 
What's needed is a good window client like WinCVS, however...

Chris

---(end of broadcast)---
TIP 8: explain analyze is your friend


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Magnus Naeslund(t)
Christopher Kings-Lynne wrote:
What's needed is a good window client like WinCVS, however...

Chris

There is a number of those, our shop uses (and makes programs for) both 
windows and unix (and might soon use mac's aswell), so it's very 
important that there exists a good client for each. Especially if you 
version html pages and such that is edited by people that isn't so techy.

We're using TortoiseSvn right now, it's implemented as an explorer 
extension, so you just rightclick on a file or directory to 
update/commit/whatever.

What i like with svn is that it's a nobrainer for old cvs guys like me 
to use it. It solves all the problems with CVS right now, and promises 
more features later on (like much better than CVS merging).

The new buzz is distributed versioning systems these days, but i 
question if that is called for in the vast majority of projects out there.

If the only reason is for offline work that can be achieved with 
subversion too, with svk for example (haven't tried it, but been told 
that it works fine). Svk handles or will(?) handle distributed repos in 
the bk sense aswell, i believe.

But ofcourse arch has alot of features that are extremly cool, the 
reason why i didn't evaluate it further was that it didn't work on 
windows well, the fixed weird branching/version naming and the 
complexity of learning for our developers since they already use cvs.

Surely the two systems should be evaluated against their competiors 
within the same distribution models, not cross the boundries, since the 
 design is very different.

Subversions strength is it's percieved simplicity, and archs strength is 
it's complexity.

Regards,
Magnus
---(end of broadcast)---
TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Dustin Sallings
On Mar 24, 2004, at 18:22, Magnus Naeslund(t) wrote:

The new buzz is distributed versioning systems these days, but i 
question if that is called for in the vast majority of projects out 
there.
	You can use distributed revision control systems as centralized 
systems, but not vice-versa.

But ofcourse arch has alot of features that are extremly cool, the 
reason why i didn't evaluate it further was that it didn't work on 
windows well, the fixed weird branching/version naming and the 
complexity of learning for our developers since they already use cvs.
	Depends on how you set it up.  In the recommended ``tagline'' method, 
you don't have to tell the revision control system when you add, 
remove, or move files (for the most part, binary files are not suitable 
for tagline).  All you have to do is commit and type a message.

Subversions strength is it's percieved simplicity, and archs strength 
is it's complexity.
	It is subversion's complexity that drove me away from it, in fact.

	Arch is incredibly simple all the way through.  It sounds like it must 
be complex to be able to do all of the things people do with it, but 
it's most assuredly not.  The requirements are few and basic (diff, 
patch, and tar).  The most common stuff is at least as simple as CVS 
(commit, update and in explicit mode, add, rm, and mv), and the 
advanced stuff is just as easy as the simple stuff (star-merge, tag 
(branching), etc...).

	As far as understanding the simplicity of arch (if you wanted to 
understand the problems it solves and implement it yourself), a really 
good presentation was posted today to the arch list that sums it up 
quickly and concisely.  It's hard to go through that and not think, ``I 
could write this.''

	http://web.verbum.org/tla/grokking-arch/grokking-arch.html

--
SPY  My girlfriend asked me which one I like better.
pub  1024/3CAE01D5 1994/11/03 Dustin Sallings [EMAIL PROTECTED]
|Key fingerprint =  87 02 57 08 02 D0 DA D6  C8 0F 3E 65 51 98 D8 BE
L___ I hope the answer won't upset her. 
---(end of broadcast)---
TIP 4: Don't 'kill -9' the postmaster


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Matthew T. O'Connor
On Wednesday 24 March 2004 06:03 pm, Dustin Sallings wrote:
   There's not a lot of GUI in arch, but star-merge is fairly incredible.
   This is how tla (the main arch implementation) itself is developed.
 Lots of branches in lots of archives by lots of people.

I would guess that better merging might be a real motivation for people.  If a 
patch that takes a month to develop can still apply cleanly despite 
significant code drift in the interrem, I could see that as a real motivating 
factor.


Matthew

---(end of broadcast)---
TIP 7: don't forget to increase your free space map settings


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Tom Lane
Matthew T. O'Connor [EMAIL PROTECTED] writes:
 I would guess that better merging might be a real motivation for
 people.  If a patch that takes a month to develop can still apply
 cleanly despite significant code drift in the interrem, I could see
 that as a real motivating factor.

Not here.  You want me to trust some bit of code (with absolutely zero
understanding of the source text it's hacking on) to figure out how to
resolve conflicting patches?  That sounds like a recipe for big-time
unhappiness.

regards, tom lane

---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
  joining column's datatypes do not match


Re: subversion vs cvs (Was: Re: [HACKERS] linked list rewrite)

2004-03-24 Thread Dustin Sallings
On Mar 24, 2004, at 20:29, Tom Lane wrote:

Not here.  You want me to trust some bit of code (with absolutely zero
understanding of the source text it's hacking on) to figure out how to
resolve conflicting patches?  That sounds like a recipe for big-time
unhappiness.
	The idea is that it's the responsibility of the branch owner to keep 
it up-to-date.  For example, I've got a branch of tla (an arch 
implementation) I made soon after I started using it in order to add a 
command I wanted and refactor a bit of the insides.  Over time, a lot 
of stuff has changed, but I still want my stuff to work, so as I update 
my branch against head of line, I make minor changes to it as things 
go.

	The difference is that instead of having a patch sitting in a queue 
somewhere suffering from bit-rot, you've got a pointer to a branch that 
you can merge when you get around to it.  You can still view it as a 
diff if you want, but the diff you get six months after the original 
submission may be quite a bit different from what you would've got at 
the beginning if a lot of the code around it has changed.

	It's definitely not a magic tool that makes bad code good and 
conflicting patches happy.  It solves other problems, though.  Many of 
the problems you don't realize you have until you go back to something 
else and try to do something simple like undo all of the changes you've 
made since your last checkin.

--
SPY  My girlfriend asked me which one I like better.
pub  1024/3CAE01D5 1994/11/03 Dustin Sallings [EMAIL PROTECTED]
|Key fingerprint =  87 02 57 08 02 D0 DA D6  C8 0F 3E 65 51 98 D8 BE
L___ I hope the answer won't upset her. 
---(end of broadcast)---
TIP 9: the planner will ignore your desire to choose an index scan if your
 joining column's datatypes do not match