OT: Good SVN How-To?

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.

formatting link

Reply to
Not Really Me
Loading thread data ...

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

Reply to
ChrisQ

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

Reply to
ChrisQ

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.

Reply to
David Brown

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.

Reply to
David Brown

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

Reply to
ChrisQ

\tags,

a

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

formatting link

Reply to
RockyG

have

\tags,

a

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

formatting link
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

formatting link

Reply to
gbloice

Thanks to all for the suggestions. There seems to be hope for a solution after all.

Scott

__________ Information from ESET NOD32 Antivirus, version of virus signature database 4573 (20091104) __________

The message was checked by ESET NOD32 Antivirus.

formatting link

Reply to
Not Really Me

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.