 |
|
| Computers Forum Index » Computer Architecture - Embedded » OT: Good SVN How-To?... |
|
Page 1 of 2 Goto page 1, 2 Next |
|
| Author |
Message |
| Tim Wescott... |
Posted: Tue Oct 27, 2009 1:40 am |
|
|
|
Guest
|
A project I'm working on just shoved me over the threshold from RCS to
SVN -- I just have to track multiple branches on this one.
But I'm not a version control maven, I'm a at (no spam) #$% algorithm guy!
Any good SVN "How To's" out there? If O'Reilly has a book I'll probably
buy it, but a good web-based one that's on the dips**t level (if you want
to do "A" then type "B") would be nice in the mean time.
--
www.wescottdesign.com |
|
|
| Back to top |
|
|
|
| Rob Gaddi... |
Posted: Tue Oct 27, 2009 2:01 am |
|
|
|
Guest
|
On Mon, 26 Oct 2009 16:40:09 -0500
Tim Wescott <tim at (no spam) seemywebsite.com> wrote:
Quote: A project I'm working on just shoved me over the threshold from RCS
to SVN -- I just have to track multiple branches on this one.
But I'm not a version control maven, I'm a at (no spam) #$% algorithm guy!
Any good SVN "How To's" out there? If O'Reilly has a book I'll
probably buy it, but a good web-based one that's on the dips**t level
(if you want to do "A" then type "B") would be nice in the mean time.
If you're running Windows, grab yourself a copy of TortoiseSVN. The
documentation's pretty good, and more importantly, as software it's got
a very high "it just works" factor.
On an unrelated note, the same author's StExBar is one of the things
that makes life under Windows livable.
--
Rob Gaddi, Highland Technology
Email address is currently out of order |
|
|
| Back to top |
|
|
|
| Joerg... |
Posted: Tue Oct 27, 2009 5:15 am |
|
|
|
Guest
|
Rob Gaddi wrote:
Quote: On Mon, 26 Oct 2009 16:40:09 -0500
Tim Wescott <tim at (no spam) seemywebsite.com> wrote:
A project I'm working on just shoved me over the threshold from RCS
to SVN -- I just have to track multiple branches on this one.
But I'm not a version control maven, I'm a at (no spam) #$% algorithm guy!
Any good SVN "How To's" out there? If O'Reilly has a book I'll
probably buy it, but a good web-based one that's on the dips**t level
(if you want to do "A" then type "B") would be nice in the mean time.
If you're running Windows, grab yourself a copy of TortoiseSVN. The
documentation's pretty good, and more importantly, as software it's got
a very high "it just works" factor.
I'll second that. One client strongly urged me to use SVN as well so I
installed Tortoise. Haven't used it in a long time so I forgot most of
it by now but it sure ranks as a "it just works" software. Because I am
an analog dude and can get rather impatient when some software doesn't
budge.
The smoothness of being on their file server when I needed docs was
amazing, and that's roughly 6000 miles from here.
Quote: On an unrelated note, the same author's StExBar is one of the things
that makes life under Windows livable.
Thanks, got to check that out.
--
Regards, Joerg
http://www.analogconsultants.com/
"gmail" domain blocked because of excessive spam.
Use another domain or send PM. |
|
|
| Back to top |
|
|
|
| Andy Peters... |
Posted: Tue Oct 27, 2009 6:26 pm |
|
|
|
Guest
|
On Oct 27, 7:23 am, "Not Really Me"
<sc... at (no spam) validatedQWERTYsoftware.XYZZY.com> wrote:
Quote: Rob Gaddi wrote:
On Mon, 26 Oct 2009 16:40:09 -0500
Tim Wescott <t... at (no spam) seemywebsite.com> wrote:
A project I'm working on just shoved me over the threshold from RCS
to SVN -- I just have to track multiple branches on this one.
But I'm not a version control maven, I'm a at (no spam) #$% algorithm guy!
Any good SVN "How To's" out there? If O'Reilly has a book I'll
probably buy it, but a good web-based one that's on the dips**t level
(if you want to do "A" then type "B") would be nice in the mean time.
If you're running Windows, grab yourself a copy of TortoiseSVN. The
documentation's pretty good, and more importantly, as software it's
got a very high "it just works" factor.
On an unrelated note, the same author's StExBar is one of the things
that makes life under Windows livable.
Tim, I'll be the nay sayer here. I didn't like TortoiseSVN but maybe for
reasons that don't matter to you. We use SmartSVN because I find it more
similar to Visual SourceSafe. Compared to Tortoise which is an explorer
integration only (unless it has changed), SmartSVN is both an integration
and a stand alone app. I find it quite user friendly.
I don't miss having a standalone app to deal with svn under Windows.
And I REALLY don't miss VSS.
Quote: On the minus side, SmartSVN isn't free. You can do a trial for free, but a
license is under $100.
One other note on SVN itself. If branches are your primary interest, make
sure to follow their recommended (read "required") layouts, i.e., everything
project has its root in \trunk, with parallel \tags and \branch. I find
this terribly inconvenient for our project format so we don't use it, and
consequently, can not uses tags or branches.
That comment about "required" layouts is not true. The recommended
layouts are just that: recommendations. You can organize your
repository in any way that makes sense to you. Under a project's root
directory you can have multiple "branches" or "trunks" that are called
whatever you wish.
The only distinction that TortoiseSVN makes is that if you check out
something that is under a "tags" directory in the repo, TSVN marks the
entire checkout as read-only in the local filesystem. This is its
simplistic way of enforcing the gentlemen's agreement that tags are
immutable.
-a |
|
|
| Back to top |
|
|
|
| FreeRTOS info... |
Posted: Tue Oct 27, 2009 8:10 pm |
|
|
|
Guest
|
Not Really Me wrote:
Quote: One other note on SVN itself. If branches are your primary interest, make
sure to follow their recommended (read "required") layouts, i.e., everything
project has its root in \trunk, with parallel \tags and \branch. I find
this terribly inconvenient for our project format so we don't use it, and
consequently, can not uses tags or branches.
Not sure that is the case, although I could be wrong. I thought you
could organise your repository directory structure in any way you like -
when you branch/tag you just have to provide the path to where the
branch/tag is to be stored.
SVN does not draw any distinction between branches and tags, so using
different directories for each allows some organisation to be
maintained. You can have as many directories and sub directories under
the \tags and \branch paths as you like.
--
Regards,
Richard.
+ http://www.FreeRTOS.org
Designed for Microcontrollers. More than 7000 downloads per month.
+ http://www.SafeRTOS.com
Certified by TÜV as meeting the requirements for safety related systems. |
|
|
| Back to top |
|
|
|
| David Brown... |
Posted: Wed Oct 28, 2009 1:37 am |
|
|
|
Guest
|
FreeRTOS info wrote:
Quote: Not Really Me wrote:
One other note on SVN itself. If branches are your primary interest,
make sure to follow their recommended (read "required") layouts, i.e.,
everything project has its root in \trunk, with parallel \tags and
\branch. I find this terribly inconvenient for our project format so
we don't use it, and consequently, can not uses tags or branches.
Not sure that is the case, although I could be wrong. I thought you
could organise your repository directory structure in any way you like -
when you branch/tag you just have to provide the path to where the
branch/tag is to be stored.
SVN does not draw any distinction between branches and tags, so using
different directories for each allows some organisation to be
maintained. You can have as many directories and sub directories under
the \tags and \branch paths as you like.
Correct - you can organise things exactly as you see fit. It is quite
reasonable, for example to have something like this:
\mainboard
\trunk
\tags
\release1.00
\release1.01
\branches
\slaveboard
\trunk
\microcontroller
\fpga
\tags
\release1.00
\branches
Organise the directories as you see fit for the project in question. |
|
|
| Back to top |
|
|
|
| David Brown... |
Posted: Wed Oct 28, 2009 1:41 am |
|
|
|
Guest
|
David Kelly wrote:
Quote: John Devereux wrote:
You might also want to look at git. Blindingly fast, compact and
efficient. It is reputedly very good at managing branches and merges,
even better than svn. No need to setup a server, each copy is its own
repository. Several projects I am familiar with have switched from svn
to git recently (as have I, after using svn for a few years).
svn does not require a server. Specify your repository as file:///
Having said that I think you are on windows, where svn could have better
tools. Not sure.
IMO a major flaw in the way many Windows people think is that they will
run svn in client-fileserver mode (using file:/// as mentioned above on
a shared volume) rather than client-svnserver.
In client-fileserver every user must have full permissions on the
repository, including the metadata. IMO this is asking for trouble,
especially if there are multiple simultaneous users.
This is, AFAIK, /exactly/ how MS Source Safe works - and is, AFAIK, the
biggest single reason for its terrible reputation.
Using file:/// is good for a single developer on their own machine - it
makes it easy to track changes and old code. But if you want to share
the repository with others, then (as you say) you really ought to use a
proper server. Both svnserve and webdav are easy to set up on a server. |
|
|
| Back to top |
|
|
|
| David Brown... |
Posted: Thu Oct 29, 2009 4:58 pm |
|
|
|
Guest
|
bigbrownbeastie wrote:
Quote: On Oct 28, 9:51 am, David Brown <da... at (no spam) westcontrol.removethisbit.com
wrote:
John Devereux wrote:
David Brown <david.br... at (no spam) hesbynett.removethisbit.no> writes:
David Kelly wrote:
John Devereux wrote:
You might also want to look at git. Blindingly fast, compact and
efficient. It is reputedly very good at managing branches and merges,
even better than svn. No need to setup a server, each copy is its own
repository. Several projects I am familiar with have switched from svn
to git recently (as have I, after using svn for a few years).
svn does not require a server. Specify your repository as file:///
Having said that I think you are on windows, where svn could have better
tools. Not sure.
IMO a major flaw in the way many Windows people think is that they
will run svn in client-fileserver mode (using file:/// as mentioned
above on a shared volume) rather than client-svnserver.
In client-fileserver every user must have full permissions on the
repository, including the metadata. IMO this is asking for trouble,
especially if there are multiple simultaneous users.
This is, AFAIK, /exactly/ how MS Source Safe works - and is, AFAIK,
the biggest single reason for its terrible reputation.
Using file:/// is good for a single developer on their own machine -
it makes it easy to track changes and old code. But if you want to
share the repository with others, then (as you say) you really ought
to use a proper server. Both svnserve and webdav are easy to set up
on a server.
Of course most people use git with a server too. I meant that you don't
*have* to, and I think you can do a lot more when without server access.
git works by having a local copy of the repository (either all of it, or
just the parts you are interested in). So you can do your work against
your local copy, including check ins and check outs, and then later push
some of your changes to a remote server for others to see. My
understanding is that it is good at handling lots of variants in the
code with different patches, and being decentralised makes it better for
when you can't always be in close contact with a main server.
svn, on the other hand, is based on the idea of a central server that is
the master and holds all the revisions. Most operations therefore need
contact with the server. Since your revisions are all in one place, it
is much easier to keep an overview - you have a mostly linear
progression (branching and merging can be viewed as non-linear operations).
The two systems each have their place, and their advantages and
disadvantages. git is ideal for the Linux kernel development model
(oddly enough), while svn is normally a better match for a development
team in one (or a few) location.
does git use the Copy-Modify-Merge or Lock-Modify-Unlock Solution ?
I don't know - I only know what I have read about git, having considered
it for our own use. But I concluded that svn fitted our needs better,
so there is a limit to my knowledge of its technical details. However,
I'd guess that there is not much in the way of locking involved -
anything with locks would have trouble scaling to fit the needs of the
Linux kernel developers.
Hopefully someone else can give you a more qualified answer. |
|
|
| Back to top |
|
|
|
| Not Really Me... |
Posted: Fri Oct 30, 2009 8:18 pm |
|
|
|
Guest
|
David Brown wrote:
Quote: FreeRTOS info wrote:
Not Really Me wrote:
One other note on SVN itself. If branches are your primary
interest, make sure to follow their recommended (read "required")
layouts, i.e., everything project has its root in \trunk, with
parallel \tags and \branch. I find this terribly inconvenient for
our project format so we don't use it, and consequently, can not
uses tags or branches.
Not sure that is the case, although I could be wrong. I thought you
could organise your repository directory structure in any way you
like - when you branch/tag you just have to provide the path to
where the branch/tag is to be stored.
SVN does not draw any distinction between branches and tags, so using
different directories for each allows some organisation to be
maintained. You can have as many directories and sub directories
under the \tags and \branch paths as you like.
Correct - you can organise things exactly as you see fit. It is quite
reasonable, for example to have something like this:
\mainboard
\trunk
\tags
\release1.00
\release1.01
\branches
\slaveboard
\trunk
\microcontroller
\fpga
\tags
\release1.00
\branches
Organise the directories as you see fit for the project in question.
You are all correct, "required" was a mistake. Maybe some of the problem
lies with SmartSVN. It tells me I can not make a tag because I do not have
"trunk"
Due to our layout though, I still don't see a reasonable solution. Let me
give an example. Maybe I don't understand SVN well enough.
\rtos
\core
\docs
\subfolders...
\src
\subfolders...
\port1
\docs
\subfolders...
\src
\subfolders...
\port2
\docs
\subfolders...
\src
\subfolders...
\tcpip
... same as above
FWIW, the subfolders are all 2-3 layers deep.
In an ideal situation I would want to "tag" a product port and have it
include the product core at the same time. Even better, some tags should
span multiple products.
Taking the SmartSVN folks at their word, I would need to have \trunk, \tags,
etc., somewhere. Where would I put them, at the very top level? Doesn't a
tag/branch then make a copy of the entire repository?
Scott
__________ Information from ESET NOD32 Antivirus, version of virus signature database 4558 (20091030) __________
The message was checked by ESET NOD32 Antivirus.
http://www.eset.com |
|
|
| Back to top |
|
|
|
| ChrisQ... |
Posted: Sat Oct 31, 2009 9:31 pm |
|
|
|
Guest
|
David Brown wrote:
Quote:
Using file:/// is good for a single developer on their own machine - it
makes it easy to track changes and old code. But if you want to share
the repository with others, then (as you say) you really ought to use a
proper server. Both svnserve and webdav are easy to set up on a server.
I've been looking into svn, as a client uses Tortoise for their
projects. It's easy to use, but I generally prefer standalone apps over
explorer extensions of any kind.
If you are choosing the client server route, which is the plan here
using the lab server, you need to consider which model to use. The http
server model needs hundreds of Mb of dependencies installed to make it
work, including Apache and the setup looks far from trivial. Usefull if
you want to run it over the net, but there's an alternate model that
ends up as not much more than a compact standalone daemon at the server
end. More usefull for someone who just needs to make it work, rather
than get immersed in the internals...
Regards,
Chris |
|
|
| Back to top |
|
|
|
| ChrisQ... |
Posted: Sat Oct 31, 2009 9:43 pm |
|
|
|
Guest
|
Not Really Me wrote:
Quote: Tim, I'll be the nay sayer here. I didn't like TortoiseSVN but maybe for
reasons that don't matter to you. We use SmartSVN because I find it more
similar to Visual SourceSafe. Compared to Tortoise which is an explorer
integration only (unless it has changed), SmartSVN is both an integration
and a stand alone app. I find it quite user friendly.
On the minus side, SmartSVN isn't free. You can do a trial for free, but a
license is under $100.
Have they changed the conditions ?.
I have SmartSvn 3 (Syntevo) on a machine here and checking earlier it
asked me if I wanted to download a later version as it loaded. fwiw,
fwiw, I thought it looked far more polished than Tortoise, but that's
probably due to my aversion to any windows 'extensions'.
It cost me nothing, other than registration...
Regards,
Chris |
|
|
| Back to top |
|
|
|
| David Brown... |
Posted: Sun Nov 01, 2009 3:50 pm |
|
|
|
Guest
|
Not Really Me wrote:
Quote: David Brown wrote:
FreeRTOS info wrote:
Not Really Me wrote:
One other note on SVN itself. If branches are your primary
interest, make sure to follow their recommended (read "required")
layouts, i.e., everything project has its root in \trunk, with
parallel \tags and \branch. I find this terribly inconvenient for
our project format so we don't use it, and consequently, can not
uses tags or branches.
Not sure that is the case, although I could be wrong. I thought you
could organise your repository directory structure in any way you
like - when you branch/tag you just have to provide the path to
where the branch/tag is to be stored.
SVN does not draw any distinction between branches and tags, so using
different directories for each allows some organisation to be
maintained. You can have as many directories and sub directories
under the \tags and \branch paths as you like.
Correct - you can organise things exactly as you see fit. It is quite
reasonable, for example to have something like this:
\mainboard
\trunk
\tags
\release1.00
\release1.01
\branches
\slaveboard
\trunk
\microcontroller
\fpga
\tags
\release1.00
\branches
Organise the directories as you see fit for the project in question.
You are all correct, "required" was a mistake. Maybe some of the problem
lies with SmartSVN. It tells me I can not make a tag because I do not have
"trunk"
Due to our layout though, I still don't see a reasonable solution. Let me
give an example. Maybe I don't understand SVN well enough.
\rtos
\core
\docs
\subfolders...
\src
\subfolders...
\port1
\docs
\subfolders...
\src
\subfolders...
\port2
\docs
\subfolders...
\src
\subfolders...
\tcpip
... same as above
FWIW, the subfolders are all 2-3 layers deep.
In an ideal situation I would want to "tag" a product port and have it
include the product core at the same time. Even better, some tags should
span multiple products.
Taking the SmartSVN folks at their word, I would need to have \trunk, \tags,
etc., somewhere. Where would I put them, at the very top level? Doesn't a
tag/branch then make a copy of the entire repository?
Scott
I don't know anything about SmartSVN and how it tries to force a
particular structure on you, but subversion itself certainly has no
requirements. A "tag" is just a copy of other parts of your repository
tree - you can call it what you want, and include what you want in the
copy. For example, you can have a tag called
"releasePort1and2version1.2.3" which is a folder containing a copy of
"core", "port1" and "port2" (but not "port3"). It sounds likely that
this falls outside of what SmartSVN likes to think of as a "tag", and
thus you have to do slightly more manual work (like creating the folder
and doing "svn copy" commands, rather than just picking "tag" from a
menu). But it is certainly feasible.
If you are doing this sort of thing a lot, and want to automate it, that
should not be hard with svn. You can use something like a bash script
calling svn commands, or for more flexibility look at the python (or any
other language) svn bindings. Of course, since SmartSVN is a commercial
product, you can also ask them to support the structures you want. |
|
|
| Back to top |
|
|
|
| David Brown... |
Posted: Sun Nov 01, 2009 3:58 pm |
|
|
|
Guest
|
ChrisQ wrote:
Quote: David Brown wrote:
Using file:/// is good for a single developer on their own machine -
it makes it easy to track changes and old code. But if you want to
share the repository with others, then (as you say) you really ought
to use a proper server. Both svnserve and webdav are easy to set up
on a server.
I've been looking into svn, as a client uses Tortoise for their
projects. It's easy to use, but I generally prefer standalone apps over
explorer extensions of any kind.
If you are choosing the client server route, which is the plan here
using the lab server, you need to consider which model to use. The http
server model needs hundreds of Mb of dependencies installed to make it
work, including Apache and the setup looks far from trivial. Usefull if
you want to run it over the net, but there's an alternate model that
ends up as not much more than a compact standalone daemon at the server
end. More usefull for someone who just needs to make it work, rather
than get immersed in the internals...
I'm not sure how many "hundreds of Mb" of dependencies are needed for
serving svn via apache, but the setup is not that hard (at least, if
you've done some apache installation and configuration before). The
svnserve route is certainly lighter in terms of setup and resources,
while serving via apache is more flexible. If you need a web server
anyway (such as for trac), if you need tighter security on parts of the
repository, or if you want to do things like redirections or name-based
virtual serving, go for apache. If you want a simple light server, go
for svnserve. You have a choice - I've used both. |
|
|
| Back to top |
|
|
|
| ChrisQ... |
Posted: Sun Nov 01, 2009 6:52 pm |
|
|
|
Guest
|
David Brown wrote:
Quote:
I'm not sure how many "hundreds of Mb" of dependencies are needed for
serving svn via apache, but the setup is not that hard (at least, if
you've done some apache installation and configuration before). The
svnserve route is certainly lighter in terms of setup and resources,
while serving via apache is more flexible. If you need a web server
anyway (such as for trac), if you need tighter security on parts of the
repository, or if you want to do things like redirections or name-based
virtual serving, go for apache. If you want a simple light server, go
for svnserve. You have a choice - I've used both.
That's a pretty good summary. The lab server is only used for a few
local machines and will never be exposed it to the web. A lightweight
solution seems to be more appropriate. I just want to be able to use svn
and don't have the time to spend days doing configuration of unrelated
applications.
If there were a need for a webserver, would most likely export the
server directory read only and have another bare bones linux machine as
web server, perhaps ipcop or similar, with the directory nfs mounted...
Regards,
Chris |
|
|
| Back to top |
|
|
|
| RockyG... |
Posted: Sun Nov 01, 2009 11:19 pm |
|
|
|
Guest
|
Quote: David Brown wrote:
FreeRTOS info wrote:
Not Really Me wrote:
One other note on SVN itself. If branches are your primary
interest, make sure to follow their recommended (read "required")
layouts, i.e., everything project has its root in \trunk, with
parallel \tags and \branch. I find this terribly inconvenient for
our project format so we don't use it, and consequently, can not
uses tags or branches.
<snip>
Quote: In an ideal situation I would want to "tag" a product port and have it
include the product core at the same time. Even better, some tags should
span multiple products.
Taking the SmartSVN folks at their word, I would need to have \trunk,
\tags,
etc., somewhere. Where would I put them, at the very top level? Doesn't
a
tag/branch then make a copy of the entire repository?
With SVN, tagging is done by reference. Thus a tag becomes a branch when
changes are made to it, but from a file point of view it enjoys common
ancestry to tha main trunk.
---------------------------------------
This message was sent using the comp.arch.embedded web interface on
http://www.EmbeddedRelated.com |
|
|
| Back to top |
|
|
|
|
|
All times are GMT
The time now is Sun Nov 29, 2009 5:03 am
|
|