Re: OT: Good SVN How-To?



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


Scott,

Sounds like SmartSVN, just like TortoiseSVN has some assistance for
creating tags and branches but to use it requires you follow the
conventional road.

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.

Graham



---------------------------------------
This message was sent using the comp.arch.embedded web interface on
http://www.EmbeddedRelated.com
.



Relevant Pages

  • Re: OT: Good SVN How-To?
    ... SVN does not draw any distinction between branches and tags, ... Correct - you can organise things exactly as you see fit. ... Taking the SmartSVN folks at their word, I would need to have \trunk, \tags, ...
    (comp.arch.embedded)
  • Re: OT: Good SVN How-To?
    ... sure to follow their recommended layouts, i.e., everything project has its root in \trunk, with parallel \tags and \branch. ... 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. ...
    (comp.arch.embedded)
  • Re: OT: Good SVN How-To?
    ... make sure to follow their recommended layouts, i.e., everything project has its root in \trunk, with parallel \tags and \branch. ... 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. ...
    (comp.arch.embedded)
  • Re: Electric Dreams - the 80s (spoilers)
    ... A file can have as many tags as you care to assign to it. ... stuff to organise, similarly a single directory would be fine if you ... Blast off and strike the evil Bydo empire! ...
    (comp.sys.sinclair)