Hi,
Unfortunately, I’m not at the office right now, so I am just recalling stuff from memory as best as I can. 
I am trying to figure out how the SVN integration really works, because I am seeing some weird stuff.
First of all, I imported the project into SVN via VP-UML. Everything worked fine. I checked out the file, made changes, checked in, and all looks good. If I look a the SVN log outside of VP-UML, it also shows that I have checked in files.
Here’s the part that I don’t understand. There are now two new files in my folder, called filename.vpp~1 and filename.vpp~2, in addition to what I thought was my project, filename.vpp.
I wanted to work on the project at home, so I took filename.vpp and sent it over to the other computer. When I got home and opened the file, it was the old version of the file. Possibly, it was the version before I imported the project into SVN, but I don’t know for certain.
My next test that yielded weird results was that then deleted filename.vpp from the folder. In everyday usage of SVN, when I do an svn update, I fully expect the file to reappear if it’s in the repository. However, the file was not restored!
I tried to find information about what’s really going on, but came up short. Perhaps someone can explain this behavior to me?
Thanks!
Hi Dave Matsumoto,
Thanks for your post. Please note an important thing that you must import, checkout, commit and update your project file to/from SVN via Teamwork Client in VP client. Manually replacing or deleting the project file in your workspace or SVN server will lead problems on team operation (e.g. you cannot commit/update project).
Please re-checkout your project file from SVN server via Teamwork Client (the project file should appear in your workspace folder again), perform modeling and commit the project to SVN server.
If you want to model the project file on another computer (for working at home), please connect to the SVN server to checkout the project file to that computer first. After you performed modeling on the project file, please connect to the SVN server again to commit the changes.
BTW, filename.vpp~1 and filename.vpp~2 are backup project files when you saved your project. So if you open them, you will find that it does not contain your latest changes.
Best regards,
Lilian Wong
Thank, Lilian. So I was playing around with this last week, and I realized that the files in the folder that I thought the project was in weren’t really the files that get committed. There’s a subfolder with the project file, along with an SVNWorking folder and one or two other files. It seems like the VPP file in this directory contains the latest version.
So if I do what you’ve suggested, which is to checkout the file first, should I overwrite the file in the folder where one originally creates the VPP file, or in the folder that I found with the SVNWorking and most up-to-date VPP file?
Does this make sense?
Hi Dave Matsumoto,
Thanks for replying.
There’s a subfolder with the project file, along with an SVNWorking folder and one or two other files. It seems like the VPP file in this directory contains the latest version.
Would you mind to capture a screenshot of the directory you mentioned, so I can take a look at what files exist there?
should I overwrite the file in the folder where one originally creates the VPP file
As I mentioned you should not manually replace or delete any teamwork project file in your workspace or the SVN server, can you please clarify why you need to overwrite it (BTW, if you can point out which project file you want to overwrite in your screenshot, it will be great.)?
Best regards,
Lilian Wong
Here’s the ASCII representation of the file structure:
I keep my UML diagrams in SVN in /trunk/docs/uml
Under this folder, I created a VPP. At this point, I had the .vpp file and .svn folder that SVN creates automatically.
- trunk
|
±—+docs
|
±—.svn
±—myproject.vpp
Once I added the project via Teamwork, it looked like this:
- trunk
|
±—+docs
|
±—.svn
±—.vpprefdata
±—teamwork_client
±—myproject.vpp
±—.lock
±—teamworkUser.xml
±—myproject.vpp
The teamwork_client folder looks like this:
- projects
|
±—+ myproject
| |
| ±—+ SVNWorking
| |
| ±— .svn
| | +myproject.dif
| | +myproject.mmh
| | +myproject.vpp
| |
| + myproject.histories
| + myproject.vpp
| + myproject.orig
| + myproject.vpp~1
|
- projects_data.xml
- svn_config.xml
So it looks like the vpp file in SVNWorking/.svn is the latest file that got checked in. The reason why I want to do this is that when I go home, if I plan to work, I won’t have access to the company network because we don’t yet have VPN. So I want to put the file on a flash drive, bring it home, modify it, then bring it back to work and overwrite the file there, then commit the changes.
Does this make sense?
Hi Dave Matsumoto,
Thanks for replying. The /teamwork_client/SVNWorking/ folder is inside your workspace, as I mentioned before, please do not move/replace/delete any project file in your workspace (the “teamwork_client” folder).
Please checkout the project from SVN in office, copy the whole workspace from your office machine to another machine for bring home. You need to start the application with that workspace at home for further modeling.
Then when you are back to office, you need to copy the whole workspace back to your office machine, and start application with the workspace for commit changes to SVN.
** You must be working on the same project file, i.e. the file is not copied from other users who checkout the project file from server.
If there is any further inquiry, please feel free to ask.
BTW, you can get details for some basic team operations with SVN from the following links:
Import project to SVN:
http://www.visual-paradigm.com/product/vpuml/demos/subversionteamwork/importsubversion.jsp
Checkout project from SVN:
http://www.visual-paradigm.com/product/vpuml/demos/subversionteamwork/concurrentsubversion.jsp
Commit project changes to SVN
http://www.visual-paradigm.com/product/vpuml/demos/subversionteamwork/commitsubversion.jsp
Update project changes from SVN:
http://www.visual-paradigm.com/product/vpuml/demos/subversionteamwork/updatesubversion.jsp
Best regards,
Lilian Wong
Hi Lilian,
I have one request regarding the way SVN support is implemented. Is it possible for you to change it so that it uses relative paths somehow?
Here’s what I do now – we do not have remote access to SVN yet, so I am currently doing everything on a removable hard disk. When I am done working in the office, I commit my code, copy the workspace folder to the removable drive, then bring the drive home. I do some more work at home on the removable drive, then bring the drive back to work the next day. I then copy the workspace folder over and commit the changes.
This works fine, but what I really want to do is to commit the VPP changes from any folder. In other words, I’d also like to be able to plug my removable drive in at the office, open the VPP from that drive, then commit the changes. The problem is that the team project server doesn’t recognize the project as being in SVN because the file path is different (because of the drive letter).
Is there any way to address this?
Hi Dave Matsumoto,
Thanks for replying. You can simply have the workspace in your removable driver, ten every time you start VP-UML, you must select that workspace (in removable driver) to start no matter you are in office or at home. This will save your work on coping and pasting workspace between machine and driver.
And since VP-UML 7.0, you can open the teamwork project from Teamwork Client even if you are not connecting to the server. That means when you have checkout project from server in office and then back to home, you can simply open the Teamwork Client and open the checked out project for further modeling. After saving the project file and get back to office, you can launch VP-UML with the workspace in the removable driver and perform project commit to the server.
Hope this helps. Please feel free to have a post again if you have any further inquiry.
Best regards,
Lilian Wong