[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

RE: Build system info needed

From: Kopp David K <david.kopp_at_us.army.mil>
Date: 2003-10-29 17:51:29 CET

Shamim,

I am willing to reconsider.

Here is how I understand what Greg is talking about (As an aside, I have
noticed that our email system here is not forwarding all of the list's
messages to me. Don't you just love Exchange?)

This approach is to add code to svn_repos_open in repos.c in libsvn_repos

The resulting function would look something like this:

svn_error_t *
svn_repos_open (svn_repos_t **repos_p,
                const char *path,
                apr_pool_t *pool)
{
  /* Check some repository property to see if we should try our lan related
locking */
  property_check_code_here

  /* If we are supposed to make an external lock file, do it here. If we
could
     not create our lock file, then return some sort of SVN error code */
  lock_file_creation_code_here

  /* Fetch a repository object initialized with a shared read/write
     lock on the database. */

  SVN_ERR (get_repos (repos_p, path,
                      APR_FLOCK_SHARED,
                      TRUE, /* open the db into repos->fs. */
                      pool));

  return SVN_NO_ERROR;
}

My question then becomes, where is the lock file deleted? I didn't see any
svn_repos_close function.

Is this right?

David

-----Original Message-----
From: Files [mailto:files@poetryunlimited.com]
Sent: Wednesday, October 29, 2003 10:20 AM
To: Kopp David K
Cc: 'dev@subversion.tigris.org'
Subject: Re: Build system info needed

Dude,

Kopp David K said:
> Hello,
>
> I have begun to hack around with the lock:// idea. I decided to approach
> this by creating a libsvn_ra_lock directory that is basically a copy of
> libsvn_ra_local. I have replaced all occurrences of ra_local with ra_lock
> and file:// with lock://
>

See Greg Hudson's post.

It's not a kludge. Having a pre/post condition for a function is not unheard
of.

It's actually a valid idiom - design by contract.

Should you choose to go down that path, it's entirely feasible that we could
leverage it into additional things that would need to take place.

Or possibly externalize it someday into a python hook or what not.

And you avoid syncrhonization issues between the ra_file protocol and yours.

There are a myriad of issues avoided. Maybe it's worth reconsidering?

-- 
Shamim Islam
BA BS
Received on Fri Oct 31 14:37:22 2003

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.