Rubyforge.org questions


#1

Hello,

  1. How do I activate commit diff mails?
  2. How can I create a ‘normal’ svn structure (i.e. trunk, branches, tags
    etc). because as I understood, in the svn dir your project_name
    directory is the only dir (i.e. no trunk/your_project_name etc). Am I
    missing something, and if not is this doable?

Thanks a lot,
Peter

__
http://www.rubyrailways.com


#2

On 1/19/07, Peter S. removed_email_address@domain.invalid wrote:

  1. How can I create a ‘normal’ svn structure (i.e. trunk, branches, tags
    etc). because as I understood, in the svn dir your project_name
    directory is the only dir (i.e. no trunk/your_project_name etc). Am I
    missing something, and if not is this doable?

If I understand correctly, those are just normal directories, i.e.
convention. You just create the directories in the project dir, and
checkout from there. IOW, you don’t do svn co
svn://whatever.com/project but svn://whatever.com/project/trunk


#3

On Wed, Jan 24, 2007, Vincent F. wrote:

svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/trunk
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/tags
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/branches

You can add -m and a message to each to keep it from opening an editor
for a commit message:

svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/trunk -m ‘create
trunk’

My personal preference, though, is to check out the root, svn mkdir each
directory in there, and check it in. That makes it only one commit
instead of 3.

svn co svn+ssh://removed_email_address@domain.invalid/var/svn/project
cd project
svn mkdir trunk
svn mkdir tags
svn mkdir branches
svn ci -m ‘import initial structure’
cd …
rm -rf project
svn co svn+ssh://removed_email_address@domain.invalid/var/svn/project/trunk project

But I’m kinda particular about commits :slight_smile:

Another option is this:

mkdir skeleton
mkdir skeleton/trunk
mkdir skeleton/tags
mkdir skeleton/branches
svn import skeleton svn+ssh://removed_email_address@domain.invalid/var/svn/project -m
‘import initial structure’

Which is probably what I’ll start doing soon :wink:

Of course, it’s all the same thing.

Ben


#4

On Wed, 2007-01-24 at 23:31 +0900, Vincent F. wrote:

svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/trunk
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/tags
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/branches

Thanks, updated!

http://rubyforge.org/docman/view.php/5/460/faq.html#structuresvn

Thanks,

Tom


#5

svn mkdir svn+ssh://removed_email_address@domain.invalid/project/trunk

Very interesting! I should add this to the RubyForge FAQ…

Tom,

However, there is a small (not unsolvable, but ATM existing) problem
here: you everywhere have instructions for anonymous checkout like this:

svn checkout svn://rubyforge.org/var/svn/some_project

Now, if you leave it like this, and some people will begin to use the
trunk-tags-branches or whatever model, there could be some confusion -
(i.e. there will be no some_project directory, but trunk and branches
instead). However, this could be resolved by automatically adding a
symlink to trunk/some_project. Just a suggestion…

btw. how to turn on automatic sending of commit diff mails?

Cheers,
Peter

__
http://www.rubyrailways.com


#6

On Fri, 2007-01-19 at 16:45 +0900, Peter S. wrote:

Hello,

  1. How do I activate commit diff mails?

Hi Peter -

Here you go - it’s different for CVS and for Svn:

http://rubyforge.org/docman/view.php/5/460/faq.html#syncmail

  1. How can I create a ‘normal’ svn structure (i.e. trunk, branches, tags
    etc). because as I understood, in the svn dir your project_name
    directory is the only dir (i.e. no trunk/your_project_name etc). Am I
    missing something, and if not is this doable?

Hm… that’s a good question. I’m not sure. When I create the svn
repos, I just do a “svnadmin create --fs-type=fsfs” and move what that
gives me into the project’s svn area.

Yours,

Tom


#7

On Fri, 2007-01-19 at 20:42 +0900, Peter S. wrote:

However, there is a small (not unsolvable, but ATM existing) problem
here: you everywhere have instructions for anonymous checkout like this:

svn checkout svn://rubyforge.org/var/svn/some_project

Now, if you leave it like this, and some people will begin to use the
trunk-tags-branches or whatever model, there could be some confusion -
(i.e. there will be no some_project directory, but trunk and branches
instead). However, this could be resolved by automatically adding a
symlink to trunk/some_project. Just a suggestion…

Hm… yup… any svn experts want to weigh in here? I mean, is it
standard svn practice to do the trunk/branches/tags directory structure?

btw. how to turn on automatic sending of commit diff mails?

Here you go:

http://rubyforge.org/docman/view.php/5/460/faq.html#syncmail

Yours,

Tom


#8

On Fri, 2007-01-19 at 21:05 +0900, Vincent F. wrote:

Hm… yup… any svn experts want to weigh in here? I mean, is it
standard svn practice to do the trunk/branches/tags directory structure?

I’m not an expert, but so far, I’ve seen only this. But it is not a
good idea to set it up by default. Some projects want to have only one
‘main directory’ in their repository, so that it would look like

Vincent, thanks for the note. I’ve added this as the start of a FAQ
item here:

http://rubyforge.org/docman/view.php/5/460/faq.html#structuresvn

If anyone has the exact command sequence to create this structure,
please let me know and I’ll add that in too.

Thanks,

tom


#9

Jan S. wrote:

On 1/19/07, Peter S. removed_email_address@domain.invalid wrote:

  1. How can I create a ‘normal’ svn structure (i.e. trunk, branches, tags
    etc). because as I understood, in the svn dir your project_name
    directory is the only dir (i.e. no trunk/your_project_name etc). Am I
    missing something, and if not is this doable?

If I understand correctly, those are just normal directories, i.e.
convention. You just create the directories in the project dir, and
checkout from there. IOW, you don’t do svn co
svn://whatever.com/project but svn://whatever.com/project/trunk

You can even do this without checking out:

svn mkdir svn+ssh://removed_email_address@domain.invalid/project/trunk

Cheers,

Vince


#10

svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/trunk
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/tags
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/branches

Thanks, updated!

http://rubyforge.org/docman/view.php/5/460/faq.html#structuresvn

A big thanks to both of you guys! Great job.

Peter

__
http://www.rubyrailways.com


#11

On Fri, 2007-01-19 at 20:31 +0900, Vincent F. wrote:

svn://whatever.com/project but svn://whatever.com/project/trunk

You can even do this without checking out:

svn mkdir svn+ssh://removed_email_address@domain.invalid/project/trunk

Very interesting! I should add this to the RubyForge FAQ…

Thanks,

Tom


#12

Tom C. wrote:

On Fri, 2007-01-19 at 21:05 +0900, Vincent F. wrote:

Hm… yup… any svn experts want to weigh in here? I mean, is it
standard svn practice to do the trunk/branches/tags directory structure?
I’m not an expert, but so far, I’ve seen only this. But it is not a
good idea to set it up by default. Some projects want to have only one
‘main directory’ in their repository, so that it would look like

If anyone has the exact command sequence to create this structure,
please let me know and I’ll add that in too.

svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/trunk
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/tags
svn mkdir svn+ssh://removed_email_address@domain.invalid/var/svn/project/branches

Cheers,

Vincent


#13

Finally, I would say that usually, you check out a svn repository with
the following command:

svn co svn+ssh://removed_email_address@domain.invalid/var/svn/some_project/trunk some_project

This way, the trunk directory is mapped as a some_project directory on
your local copy: it is much easier to work on.

I absolutely agree! Basically this is what I wanted to say :slight_smile:

It’s a pity that the symlink can not be made… but I guess not too much
people want to checkout somebody’s svn anyway, and if they do, well,
they will figure out somehow that it is the /svn/trunk/ rather than in
/svn directly…

Thanks for the replies!

Peter

__
http://www.rubyrailways.com


#14

Tom C. wrote:

instead). However, this could be resolved by automatically adding a
symlink to trunk/some_project. Just a suggestion…

symlink is not possible (at least from what I know) in subversion.
/var/svn/some_project is a real directory, and everything under it is
a ‘virtual’ directory which doesn’t appear on the filesystem, but rather
in the subversion databases.

Hm… yup… any svn experts want to weigh in here? I mean, is it
standard svn practice to do the trunk/branches/tags directory structure?

I’m not an expert, but so far, I’ve seen only this. But it is not a
good idea to set it up by default. Some projects want to have only one
‘main directory’ in their repository, so that it would look like

svn://rubyforge.org/var/svn/some_project/trunk
svn://rubyforge.org/var/svn/some_project/branches
svn://rubyforge.org/var/svn/some_project/tags

But some other want subprojects, and will use the following:

svn://rubyforge.org/var/svn/some_project/subproject_1/trunk
svn://rubyforge.org/var/svn/some_project/subproject_1/branches
svn://rubyforge.org/var/svn/some_project/subproject_1/tags

and so on for other subprojects.

My opinion is to add a FAQ element with the instructions on how to
create a standard some_project/(trunk|tags|branches) structure (with
mkdir, pretty fast), and leave those who prefer another structure to do
it themselves (they should know ;-)…)

Finally, I would say that usually, you check out a svn repository with
the following command:

svn co svn+ssh://removed_email_address@domain.invalid/var/svn/some_project/trunk
some_project

This way, the trunk directory is mapped as a some_project directory on
your local copy: it is much easier to work on.

Cheers !

Vince


#15

Hm… yup… any svn experts want to weigh in here? I mean, is it
standard svn practice to do the trunk/branches/tags directory structure?
With a serious project, absolutely. If you want to make some releases
which you are planning to stabilize further (i.e. not just take a
snapshot of the svn, gemify it, release and again use the same branch
(i.e. trunk in this case) for commiting your code), this is a must.
Branches are not that critical, but tags are, IMHO.

btw. how to turn on automatic sending of commit diff mails?
http://rubyforge.org/docman/view.php/5/460/faq.html#syncmail
Thanks!
Peter

__
http://www.rubyrailways.com