Hello,
We are setting up a new SVN repository for all of our code ( quite large) and I am trying to find
out what would be the best way to organize all this code on the repository. I have projects A, B,
C ...etc and they are independent.
Should I set up separate respositories for each of A, B, C etc or should I make a single
repository for all of them. Usually people do checkout all the projects (that is what they have
been doing..) but work only on a few projects at a time. Since the verison number of the tree gets
updated with every single commit, then it might be uncomfortable for users to find out what exact
revision number they want to revert to, given that there will be many more revisions apart from
theirs.
However, if I set up separate repositories for all the projects, what should I do about the common
files. Also, this makes it cumbersome at the administrator's end to take care of so many
repostories.
I would like to know your expert suggesstions in this case.
Thanks and best regards,
Vishal
--- Todd W <trwww@sbcglobal.net> wrote:
> I use subversion in my application. I access the repository through the perl
> bindings. This all works great... sometimes. I've went to revision 950 in
> two weeks. Probably 4 times now, I get errors from subversion that look
> mostly like this:
>
> Couldn't open a repository: Unable to open an ra_local session to URL:
> Unable to open repository
> 'file:///usr/local/repos/articles/trunk/1115733188': Berkeley DB error
> while opening 'uuids' table for filesystem /usr/local/repos/db:
> Cannot allocate memory: bdb: Lock table is out of available locker entries
> at /usr/local/newsdesk/lib/perl/News/Article.pm line 106
>
> This is the method containing line 106:
>
> sub content {
> my( $self, $revision ) = @_;
> $revision = (defined($revision) && ($revision ne '')) ? $revision :
> 'HEAD';
> my $ctx = SVN::Client->new();
> my $file = IO::Scalar->new();
> $ctx->cat($file, $self->filepath, $revision); # 106
> return( $file );
> }
>
> This is where I use the "svn cat" equivalent. All accesses to the repository
> are made with the file: protocol. The error is not always the same, but I
> dont have other samples to send.
>
> In this class, I do $ctx->add()s and and $ctx->delete()s, all followed by a
> $ctx->commit, and some log browsing.
>
> A "$ svnadmin recover /path/to/repos" always gets me going again, but
> obviously I'd like it to never happen.
>
> Since the failures are intermittent, the only thing I can think of is db
> corruption because of concurrent accesses (its a multi user system).
>
> Is this what others would guess that the problem is?
>
> If so, could I have sucess moving the $ctx->commit()s to a cron job that ran
> every 5 minutes?
>
> My problem with this is what happens when the application does subversion
> reads while the cron job is commiting? Won't I be right back where I
> started?
>
> [root@host articles]# rpm -qa | grep 'subversion'
> subversion-devel-1.1.4-0.1.1.fc2.rf
> subversion-1.1.4-0.1.1.fc2.rf
> subversion-perl-1.1.4-0.1.1.fc2.rf
>
> Thank you for your time, Any advice is very much appreciated.
>
> Todd W.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
> For additional commands, e-mail: users-help@subversion.tigris.org
>
>
=======================================
A train station is where the train stops.
A bus station is where the bus stops.
On my desk, I have a work station... !!
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Jun 1 22:14:52 2005