Board index » delphi » Re: Version Control Advice

Re: Version Control Advice


2006-04-06 10:51:07 PM
delphi169
Quote
I have to say I am confused.
OK
Quote
You don't like SVN because of one of the clients (TortoiseSvn).
No. I don't like Subversion or TortoiseSVN. TortoiseSVN caused me more pain
because I used that more often (directly, if you see what I mean).
Quote
I quote you "I hate it with a passion. Vile, disgusting, hard to
setup and manage".
Yes. Subversion is.
TortoiseSVN is just clunky rubbish.
Quote
Thats like saying that you don't like Delphi because you had a bad
experience with Visual Studio and they both run on Windows.
Even if that was what I said, that would be stretching a metaphor well past
breaking point, I think.
Cheers,
Jim Cooper
_____________________________________________
Jim Cooper XXXX@XXXXX.COM
Skype : jim.cooper
Tabdee Ltd www.tabdee.ltd.uk
TurboSync - Connecting Delphi to your Palm
_____________________________________________
 
 

Re: Version Control Advice

Jim Cooper writes:
Quote

>But, and it is a big beneficial but, by
>keeping a local copy of files, you can do simple operations like a
>diff without hitting the repository.

As long as you don't care about how accurate that might be.
I can see this possibly being a benefit, actually. Assuming you're mostly
interested in diffing files you're primarily working on for changes you
made sometime in the past, you're likely to have all those changes in your
local cache anyway.
Also - BIG ASSUMPTION AHEAD - I am assuming that when you commit your
changes, subversion also synchronizes your cache so you get any history
you missed - all those other developer commits that are not current in
your cache are updated (along with some merge alert?). That way your
diff's are reasonably OK, unless someone was actively working on the same
file recently.
Then again, I am a "don't leave at the end of the day without committing
changes" kind of guy. That comes from a long training on a record-locking
VCS, and if you didn't come in the next day and someone needed your file,
you got beaten about the head & shoulders whenever you dared show up next.
I'd tend to sync my changes fairly regularly.
--
-Brion
There's no such thing as 'one, true way;'
- Mercedes Lackey
 

Re: Version Control Advice

Matthew Jones writes:
Quote
I'm not arguing it is good practice, but it is possible. With some VCS
systems that isn't possible without big problems.
Why would you want to? If you need two copies for some reason, just copy
the file w/xcopy or Windows?
I'm honestly trying to see the business case.
--
-Brion
There's no such thing as 'one, true way;'
- Mercedes Lackey
 

Re: Version Control Advice

Jon Robertson writes:
Quote
Assuming that StarTeam works in a particular way, without really
learning the product first, can be dangerous.
Agreed, but I think that is fairly true of most products.
Quote
There are several outstanding people on the .starteam.general
newsgroup that are very helpful and know StarTeam very well.
Very much agreed!
Quote
>The StarTeam license with BDS is not a Named User License like the
>BDS license, it is one server only.

Huh? Perhaps StarTeam licensing has changed since 5.4. My
understanding is that there are two types of StarTeam licenses: Named
User and Concurrent User. I am pretty sure that the license that comes
with BDS is a Named User license. IOW, you can install the license in
a StarTeam server and assign it to one StarTeam user. Unless the
license is re-assigned, that user can always log into the StarTeam
server, from anywhere, and even multiple times.

Another advantage of StarTeam is that you can set up different
"servers" ("service" is probably less confusing, but StarTeam calls it
a "server"), on different ports, running on the same physical server.
The two "servers" don't know anything about each other, have different
users, etc. You can install the StarTeam license on both of the
logical servers and still be within compliance.
I need to re-read the licensing agreement for the package that shipped
with Delphi, and I should have been clearer with my wording in the first
place. There are two parts to StarTeam - the server engine, and the
client licenses. The client licenses are definitely Named User, and
portable to multiple machines.
What I thought was against the rules would be to install the server
portion of the software on a separate box. For example, to install the
software that came with my Delphi license on my server at work, and also
install it on my server at home for my personal projects. That seemed to
be the scenario the OP was indicating, and I don't think the StarTeam
bundled license permits this. The client license, however, would be
available for both home and work use, as long as they both hit the same
physical server. Are we saying the same thing now?
--
-Brion
There's no such thing as 'one, true way;'
- Mercedes Lackey
 

Re: Version Control Advice

Brion L. Webster kirjoitti:
Quote
Jim Cooper writes:

>
>>But, and it is a big beneficial but, by
>>keeping a local copy of files, you can do simple operations like a
>>diff without hitting the repository.
>
>As long as you don't care about how accurate that might be.

I can see this possibly being a benefit, actually. Assuming you're
mostly interested in diffing files you're primarily working on for
changes you made sometime in the past, you're likely to have all those
changes in your local cache anyway.

Also - BIG ASSUMPTION AHEAD - I am assuming that when you commit your
changes, subversion also synchronizes your cache so you get any history
you missed - all those other developer commits that are not current in
your cache are updated (along with some merge alert?). That way your
diff's are reasonably OK, unless someone was actively working on the
same file recently.
Yes, that is the case. When you commit, all the local files are
synchronized. And the merge is done, if needed.
David S.
 

Re: Version Control Advice

Jim Cooper kirjoitti:
Quote

>I was just pointing out that they do not all the time deal directly
>with repository.

OK, Subversion has it is bizarre two-step process, but to get an
You say bizarre, I say it is different. For many, it is fits very well.
David S.
 

Re: Version Control Advice

Jim Cooper kirjoitti:
Quote
>And I know that I can lose my work if I only keep it in my own machine.

I'm trying to tell you that you can lose your work even using a VCS,
unless you always lock files when you check them out.
And by this you mean that the merge fails somehow? Then, that is the case
in every non-locking system, but then you just have to do the merge by
hand. But I'd never change back to a locked system because of this.
And binaries should be always locked, of course.
David S.
 

Re: Version Control Advice

Quote

>So you were forced to use a tool you hated.

Yes. By the looks of things I will be again shortly :(
I have to say I am confused. You don't like SVN because of one of the
clients (TortoiseSvn). You are pre judging a product (SVN) because of a
different product (TorroiseSvn). I quote you "I hate it with a passion.
Vile, disgusting, hard to setup and manage". This you said in a reponse
to "Subversion on the other hand, is simply excellent software.".
Thats like saying that you don't like Delphi because you had a bad
experience with Visual Studio and they both run on Windows.
Befuzeled
Dean
--- posted by geoForum on delphi.newswhat.com
 

Re: Version Control Advice

Jim Cooper writes:
Quote
Both Evolution and StarTeam allow that. I'd be surprised to find
a VCS that didn't, actually
According to a thread on the JEDI VCS newsgroup, arbitrary paths per
developer aren't supported, though it is something apparently on the
wish list.
 

Re: Version Control Advice

David Smith writes:
Quote
I would be surprised if this true in all cases. I only have
experience with VSS, but I don't think it would work very well
without a network connection to the repository.
No, it wouldn't.
But, then again, neither does StarTeam. If the repository becomes
unavailable for any reason, the StarTeam client {*word*99}s out. At least,
Version 5.4 does.
--
Jon Robertson
Borland Certified Advanced Delphi 7 Developer
MedEvolve, Inc
www.medevolve.com
 

Re: Version Control Advice

On Thu, 06 Apr 2006 10:21:59 +0300, David Smith <XXXX@XXXXX.COM>
writes:
Quote
>Yes they do. Your local copies are just local copies of **some** stuff
>that is in the repository.

No, they are local copies of some stuff that **was** in the repository
some point in time. That might not be the case any more. So one could
argue that the local copy is *my* master as I do coding and diffs
against it. Only when I see necessary, I can refresh the *local* copy
with possible changes from others and do the merging to my *local* copy.
I'm just using Subversion for my self, as a kind of "backup tool with
history", and an easy way to sync between main box and laptop.
So far I kinda get the impression that in contrast to most other VCS,
where (from my limited experience) everything revolves around the
repository, Subversion's repository is a bit like scientific journals
ala Nature.
You have a bunch of scientists doing research at different locations.
In order to let the other scientists know what results they've found,
they get an article published in a journal. Other scientists can then,
if they care, read about these results. Or they can go to the archive
and check out results published in earlier issues. Later they
themselfs publish something. If you have two different results from
groups probing the same issue, discussion would occur as to what's
really going on etc.
Subversions repository holds a history of all the previous code
written. It also holds the latest commited code, which you are free to
check out if you want to, regardless of what others do (no locking).
You can also commit code whenever you want to, and if this code
conflicts with what's already in the repository, you need to "settle
the argument", ie merge.
So far, Subversion works ok for me. But I am just myself, so I can
treat the repository in a very different way than if I was working in
a team.
- Asbjørn
 

Re: Version Control Advice

Brion L. Webster writes:
Quote
I need to re-read the licensing agreement for the package that
shipped with Delphi,
The sad thing is, I couldn't find a copy anywhere on the CD. I had to
re-run the SETUP and copy the text out of the "License Agreement" page
of the install wizard. :(
Quote
What I thought was against the rules would be to install the server
portion of the software on a separate box.
Per my 5.4 license, yes:
"Under any type of license acquired, for each copy of the Product
licensed by Licensee, Licensee may install one copy of the Server
Software on a single computer. [...] The number of Client Software
copies that may be installed is determined by the type of license
acquired as set forth below"
"2.3 Named User Grant of License. [...] For each copy of the Client
Software, you may install the Client Software on up to five (5)
computers provided that the Named User is the only individual permitted
to use the Product."
Quote
The client license, however, would be available for both home and work
use, as long as they both hit the same physical server. Are we saying
the same thing now?
Yes. I actually think of it a little differently, and I am not sure if
my thoughts are in violation of the license or not. My thoughts are
that I can install the "software" on as many computers as I want. I
don't even have to pay for a copy of the software, I can download it
from Borland.
*However*, I can only install a /user/ /license/ on one machine. So if
I install the server at home and at work, I can not install the same user
license on both machines. I would have to have at least two separate user
licenses.
--
Jon Robertson
Borland Certified Advanced Delphi 7 Developer
MedEvolve, Inc
www.medevolve.com
 

Re: Version Control Advice

David Clegg writes:
Quote
Do not change the 'Working Folder' as that affects all users
who use that project. Individual folders can have their local folders
specified as well :-
Disclaimer: The above applies to the ST6 client. I am not sure if this
has changed with ST2005.
In 5.4, they're both referred to as "Working Folders". "Default" is
the global working folder. This is what everyone will use unless the
user has specified an "Alternate".
"Alternate" is the working folder for that "user".
Note, however, that it is not really per user, but per workstation. The
alternate folder specified on a given workstation is used for all
StarTeam users that may log into the workstation.
At least, that is how it works for 5.4.
--
Jon Robertson
Borland Certified Advanced Delphi 7 Developer
MedEvolve, Inc
www.medevolve.com
 

Re: Version Control Advice

Jon Robertson writes:
Quote
Note, however, that it is not really per user, but per workstation.
Luckily for me that is one and the same. That is until my 8 y/o decides
she wants to dabble in a bit of Delphi in her spare time :-)
--
Cheers,
David Clegg
XXXX@XXXXX.COM
cc.borland.com/Author.aspx
QualityCentral. The best way to bug Borland about bugs.
qc.borland.com
"No, no, no, Lisa. If {*word*62}s don't like their jobs, they don't go on
strike. They just go in every day and do it really half-assed. That's
the American Way." - Homer Simpson
 

Re: Version Control Advice

Just occasionally I have been doing a load of work on something - a radical
overhaul, and haven't got to a state where I can check it in safely yet.
And then I find it would be nice to see how the files were before I
started. Or need to do a build instantly for a customer's fix. Being able
to create a new folder and in a few clicks get another copy is handy. And
of course you can just delete it again straight away without any
consequence.
/Matthew Jones/
 

Re: Version Control Advice

Multiple repositories, since it comes up, is another thing I like about
SubVersion. I now have about ten repositories - one for each big project
and some for lots of minor but related projects. They are all accessed
using the same server as they are in subdirectories. But the best thing
about them is they are now all independently backupable and restorable.
And that also means that if one of them needs to move to another person's
server, I can just give them that sub-directory and they just slot it in
on theirs. How you'd do that with some of the competition I just don't
know. I know it wouldn't be possible with the two other VCS's that I use
(and am phasing out).
/Matthew Jones/
 

Re: Version Control Advice

Quote
regardless of what others do (no locking).
FWIW, this is also another thing that was a big attraction. One developer
who does work with us travels a lot, and often codes in a hotel somewhere
and may not have a connection to the internet. The ability for him to code
knowing that he can merge effectively means that he will not now lose time
if he didn't lock a file, and I won't lose time if he's got a file locked
I need to work on.
It is another of the facilities I thought would be odd, having always used
a locking system, but it is working well. And of course you can now use
proper "locks" if you want to.
/Matthew Jones/