Re: OT: Good SVN How-To?
- From: "gbloice" <embeddedrelated@xxxxxxxxxxxx>
- Date: Sun, 01 Nov 2009 12:19:33 -0600
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:
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 nothave
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.
... 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.\tags,
Taking the SmartSVN folks at their word, I would need to have \trunk,
etc., somewhere. Where would I put them, at the very top level? Doesn'ta
tag/branch then make a copy of the entire repository?
Sounds like SmartSVN, just like TortoiseSVN has some assistance for
creating tags and branches but to use it requires you follow the
You should investigate svn 'externals', see
http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html. They allow
you to store a 'link' to a different part of the repository (or another
repo entirely) which acts as though that part of the repo was directly
'included' where the external definition was made.
For example, in your example I presume you want core to appear under both
port1 and port2 so in both locations add an external reference to
^/core@somrerev. It is important to use a peg revision (@somerev) to
define the actual revision of core that you want to use in the ports so
that it isn't a moving target as changes are made to core.
If you had the recommended structure under core of trunk and tags, then the
external reference could just use ^/core/tags/1.0 as you 'shouldn't' (by
convention) update a tag once it is created.
When you now checkout or update either port1 or port2 you will get the
linked revision of core for free.
I think of externals as symlinks.
Also note that in svn, copies are very cheap. Making a copy of trunk to
tags/1.1 for example only stores the fact that tags/1.1 is a copy of trunk
at some particular revision.
This message was sent using the comp.arch.embedded web interface on
- Re: OT: Good SVN How-To?
- From: Not Really Me
- Re: OT: Good SVN How-To?
- Prev by Date: Re: Small Linux board
- Next by Date: Re: BARE BOARD PCB TEST QUESTION
- Previous by thread: Re: OT: Good SVN How-To?
- Next by thread: Re: OT: Good SVN How-To?