From: Bob Aman Date: 2005-04-13T12:58:33+09:00 Subject: Re: Accessing SVN through Ruby > I don't know how much reading of the svn manual you have done > because it explains very clearly how to > edit metadeta with the svn client and the svnadmin tools. It also > explains (IIRC) about the client libraries (but I could be wrong on > that). See , especially > the section about "Using the API." I did read that section on using the API. It's not overwhelmingly helpful unless you were writing everything in Python. I also know how to edit metadata under normal circumstances. IE, when you have a working copy checked out. That's a simple propset command. I need to edit that metadata without having a working copy. I need to be editing the metadata from within a multi-user web app, and writing anything to disk would be a bad idea, especially if the sole purpose of writing to disk was to make svn know which repository we're interested in. Compounded on top of all that, a very likely requirement will be having the same web app connect to more than one repository. > You can specify where you check out, but checking out to memory might > require some interesting proramming. If it is via a web client, > though, checking out to memory wouldn't work as the memory would go > away when the script ended. And why is that a problem? Any "checkouts to memory" would only be occurring for the purposes of enabling in-place metadata changes. If that's even required. See, the problem is that I'm writing a wrapper of sorts around Subversion. For example, things like workflow states will be saved in the svn metadata. I don't particularly want users editing metadata manually, though I don't see any really, really big problems with them being able to do it since the metadata is versioned. Workflow states will probably have some sort of encrypted authorization token that will be next to impossible for an end user to fake, and if they change those, someone walks over to their cube and tells them to cut it out and then restores the workflow state to what it should be. Not a big deal. (Certainly better than the system that currently exists. The app will just have to make allowance for possibly erroneous data. No biggy, I would be remise in my coding anyhow if I made the assumption that everything was clean.) But for that to work, the program needs to be able to "promote" or "demote" files from within the web interface. That's not something you want to make people do via TortoiseSVN. Especially if you have complex group/role logic going on to determine who can promote or demote what. -- Bob Aman