Re: Versioning ... CVS or Subversion?
Re: Versioning ... CVS or Subversion?
- Subject: Re: Versioning ... CVS or Subversion?
- From: Don Lindsay <email@hidden>
- Date: Sun, 11 May 2008 16:17:42 -0400
Hello;
<<Maybe I should have used google, but could you explain me in general
how does versioning work. And how do I work with it. Specifically in
regard to WO development.>>
Versioning allows you to take "snapshots" of your code at a point in
time. This is extremely useful if you totally hose part of your
project and want to return to a point where some piece of code used to
work. Consider it almost a super undo utility.
However, the strength of Versioning comes when you can version your
entire project to a release. You can freeze the project at a version
1.0 and then start on version 1.1, where changes you make will not
impact the source of version 1.0.
Lets say a bug occurs in version 1.0, which must be fixed. You do
not want to have to peel back all the changes you have made to your
project for version 1.1 to be able to patch version 1. When using
versioning you can open the version 1.0 release of your project, make
patches to the source, build it, then check it back in, without
effecting your work on version 1.1. With some versioning tools you
can then take the changes you made in version 1.0 for the patch and
patch them into version 1.1.
Another condition is that I don't have Internet connection at work so
I can't use online repository and have to merge my "homework" using
flash drive anyway. Does versioning system support this?(and which
ones do?)
Well, depending on your operating system and configuration. You could
create your repository on a flash drive. However, if you lose the
flash drive or it breaks, then you are out of luck you lose your whole
repository. Any versioning tool can create the repository on any
valid drive on your system, including flash drives. I wouldn't
recommend doing this.
- I can't imagine versioning system without IDE integration. how
does it work?
All versioning tools come with command line executables to allow you
to interact with a repository. The commands are different for each
versioning tool. Typically, an IDE will use the executables to
interact with a versioning tools, in some cases libraries are used by
an IDE as well. If an IDE does not support the versioning tool, that
you select, you will have to check-in, check-out, version, pin and
branch manually using the executables or tools provided by the
versioning tool, outside the IDE. (I.E. drop to the command line or
use a browser)
- If you say it is that good with Mac OS X integration and coming
really soon - maybe I could wait a bit and start my versioning
experience with something really cool?
"Maybe I should just wait" are famous last words for a developer. You
can always migrate from one tool to a new versioning tool. If your
project is at all important implement versioning right away.
Don
On May 11, 2008, at 3:50 PM, Gennady Kushnir wrote:
Thank you all for your opinions.
I see all hands are for SVN except built in Eclipse integration.
Maybe I should have used google, but could you explain me in general
how does versioning work. And how do I work with it. Specifically in
regard to WO development.
Does it archive only java sources? And how about components, EOmodels
and other related resources (which can also have versions)?
Another condition is that I don't have Internet connection at work so
I can't use online repository and have to merge my "homework" using
flash drive anyway. Does versioning system support this?(and which
ones do?)
And questions to Miguel:
- where I can find that "very good open source book that documents
everything" ?
- I can't imagine versioning system without IDE integration. how
does it work?
- If you say it is that good with Mac OS X integration and coming
really soon - maybe I could wait a bit and start my versioning
experience with something really cool?
Gennady
2008/5/11 David Holt <email@hidden>:
Coincidently there is a new podcast about version control:
http://www.macdevnet.com/index.php/shows/mdr/38-mdr/366-mdr007
David
On 11-May-08, at 11:23 AM, Oliver Scheel wrote:
In fact, CVS was build upon RCS which is already some decades old.
The
projects where much smaller and the internet was still academic.
I worked a very long time with CVS and it would still do the job.
Now I
only use SVN for my projects, because it's now stable enough and
widely
spreaded. Yes, SVN solves a lot of issues in CVS.
But there are some very bad issues with SVN:
A broken CVS repository or working copy can be fixed very easily.
With SVN
you MUST make backups/dumps with svnadmin! Otherwise it might be
easier to
rewrite your 10 men year project from scratch ;-)
With the switch from svn 1.2 to 1.3 (or 1.3 to 1.4) the format of
the
working copy was changed, WITHOUT guranteeing backwards
compatibility and
WITHOUT WARNINGS when accessing an older working copy (sic!!!!). If
you were
not aware of it, you destroyed the states of working copy with one
click. In
one project we need to use a "shared working copy" because it was not
possible to work on dedicated machines. The svn clients were
installed on
each client. I don't need to tell you the rest of the story... ;-)
Oliver
P.S.: And, there is still some magic behind SVN :-)
Am 11.05.2008 um 19:43 schrieb Miguel Arroz:
Hi!
Yes, do DO need a version control system. Zipping and flash
drives are
an excellent way to burn yourself with mistakes and lossing work.
There are some more version control systems, namely GIT. I still
didn't
look at it. It's the system used to manage the Linux kernel source
code, and
people say it basically can do anything (which might be good or bad).
Specially, merging several code forks seems to be easier than CVS
and SVN.
Anyway, between SVN and CVS, you want SVN, period! Let's say
that, the
first time I used a version control system (and that was CVS) I only
committed stuff with other people looking over my shoulder to make
sure I
was not going to screw things up. CVS just doesn't make any sense,
at least
for me, there are too many things that are not done the way they
should.
On the contrary, SVN is what CVS should have been. It's clean, it
works.
The main difference is that SVN considers a "version" to be the
state of all
the files tree. IE, you know that version 234 of your code
repository means
ALL the tree is in the version 234, it's like a "snapshot" in time.
CVS uses
a different and independent version number per file, which makes
things
chaotic. You may have a file in version 25 (because you changed it
25 times)
and another file in version 3 (you changed it 3 times) that were
actually
added to the rep at the same time. It just doesn't make any sense,
again, at
least for me. Also, SVN has a very good open source book that
documents
everything.
About IDE integration and software, I don't use the eclipse
plugins,
because I'm lucky enough to be a alfa-beta-whatever-user of a new
GUI for
SVN that is coming on for Mac OS X really soon now, and that I
simply love.
But I can't talk about that right now or I'll be killed.
Yours
Miguel Arroz
On 2008/05/11, at 14:33, Gennady Kushnir wrote:
Hello list.
I'm thinking about using some versioning system.
Trying to decide whether I do need one and if yes - which one.
I've heard something about CVS and Subversion. Maybe there is some
other...
What are advantages and disadvantages of versioning in general
and of
concrete solutions.
I work on Eclipse, I've seen it does support some versioning.
Today I just zip my workspace and put it on my flashdrive. As I
work
both at home and at work I have to synchronise my work.
In most cases when i come home I just trash my obsolette
workspace and
unzip the one I brought from work.
But this approach has disadvantages...
first - the whole workspace (even zipped) consumes rather much
disk
space (a lot more than just source codes) so my version repository
bosomes very large - when I used xCode it was much more compact
as I
excluded build folder.
and second - if I forget to zip workspace and put it to my
flashdrive
- than if do something after that - I have to thoroughly merge
my work
after that.
Will versioning sistem help with these problems?
Another point is that today I work alone. But maybe in future I
will
find some collaborator. As i understand - vesioning should help in
group work.
Interested in your opinions
Gennady Kushnir
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
Miguel Arroz
http://www.terminalapp.net
http://www.ipragma.com
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
@mac.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden