Closed Bug 493038 Opened 11 years ago Closed 11 years ago

Add Subversion (SVN) support to VCS commands

Categories

(Skywriter Graveyard :: Version Control, enhancement)

enhancement
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: GPHemsley, Assigned: GPHemsley)

References

Details

Bespin's VCS commands currently only support Mercurial (Hg). Among others, it should support Subversion (SVN), too.

Aside from being useful for the general public, this blocks Mozilla.org's use of Bespin for in-line editing of pages. (See bug 487108.)
Whiteboard: vcs
OK, so, I'm thoroughly confused. I attempted to `vcs clone` the SVN directory for Mozilla.org, expecting it to fail miserably. Instead, it only failed enough to be unusable.

The weird part that I don't understand is: it actually cloned the repository! There is a full-on usable SVN repository checkout in the devfiles/ directory. It's just that Bespin can't access it.

The part that failed was the whole initialization of the project within Bespin. And the clone command itself failed with a traceback, but I couldn't copy it because the dialog window disappears when you click on it.

It did, however, involve these files in the backend:
queue.py, line 38
vcs.py, line 133
vcs.py, line unknown (141 or thereabouts?)
filesystem.py, line unknown
utils.py, line 42

Attempting to run the command again gives an error about the project already existing, but the 'deleteproject' command doesn't work to remove it.
Mass move of all VCS bugs to the new Version Control component.
Component: General → Version Control
QA Contact: general → version.control
Whiteboard: vcs
I have gotten some basic SVN support completed, at least using username/password authentication. (I haven't tested SSH authentication.)

The first part of this requires some minor changes to the vcs.js file in Bespin to add a selector to specify the type of VCS used with `vcs clone`. It also adds publish command for "created:project" so that the list of existing projects gets updated without having to refresh the page.

http://bitbucket.org/gphemsley/bespin/changeset/f8cab7c8d7a1/

The second part consists of a number of changes made to UVC which adds a number of SVN commands (that work!). Some are commented out because I'm not sure what to do about them. I also haven't updated the tests or checked to see if they still work. I'd venture to guess that they don't quite yet.

http://bitbucket.org/gphemsley/uvc/
Assignee: nobody → gphemsley
I have pulled the changes from Gordon's repositories, which does get part of 
the way to having SVN support. More is required for commit/push to work 
properly (among other commands) and SSH support is needed.
Ben checked in the Bespin changes with changeset f8cab7c8d7a1, so everything's set for testing the basic SVN support.

Commit works fine using the SVN logic, which excludes push. More work needs to be done in order to implement the DVCS logic that includes push.

I still have to figure out exactly how to implement SSH support, since it doesn't seem like the Hg method will carry over. That's probably the next thing on the priority list, so that we begin work on a fix for bug 487108.
The way commit should work is like this: store the commit messages *somewhere* 
and then on "push" bundle them all up into a single commit message. The user 
interface ideally will tell the user "don't forget to push" or something along 
those lines, since svn users won't be used to that.

Having "svn commit" at some point will definitely be helpful.

SSH support definitely won't work the way hg does it, unfortunately. I'm hoping 
that there are environment variables that can be set with the SSH info, but 
that will require some changes to parts of uvc outside of uvc.svn.
This is in 0.4, may have partially been in earlier releases
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → 0.4.0
You need to log in before you can comment on or make changes to this bug.