webMethods subversion Integration
Step by Step webMethods subversion Integration
Versions:
webMethods: 8.2
Subversion Server 1.6.x
Subversion Clinets: Collabnet 1.6(command line), Tortoise SVN 1.6/1.7
1) TortoiseSVN-1.7.11.23600-x64-svn-1.7.8 ) Download Tortoise SVN 64 bit client and install it on a remote system or on your Desktop.
2) Download subversion client CollabNetSubversion-client-1.6.20-1-Win32 from http://www.collab.net/downloads/subversion and install it on the same computer where your Integration Server(IS) is running. Subversion only supports 1.6.x versions.
3) SVN Client software must be executable by the user account that is used to start IS. So, make sure the user should have Admin access to the IS and also to the computer.
4) Include âC:Program Files:TortoiseSVNinâ in the PATH statement for the user account.
5) Tortoise SVN is a Shell extension to use the client we should always open it in a Repo Browser, Select a folder -> Right click on it -> Go to TortoiseSVN and click on Repo Browser.
6) Download Subversion server software CollabNetSubversion-server-1.6.20-1-Win32.exe from http://www.collab.net/downloads/subversion
7) Install the Subversion server software and access it via URL http://localhost/svn/
8) Start/Stop or restart the Subversion Server via the windows service "Collabnet Subversion Apache "
9) Browse Repositories and click on Create button to create one âwebMethods_SVNâ
10) This Repository will be by default created at C:csvndata:repositories and you can also access your Repository via http://localhost/svn/webMethods_SVN/
Asks for Authentication, provide default username and pwdâ¦âadminâ
For command line use $svn create webMethods_SVN --username= --password=
11) Go to Repositories access rules and grant ârwâ access to SVN users
EX: admin = rw
Go to C:csvndata:repositories:webMethods_SVN:config and open svnserve.conf and uncomment the lines and save the changes:
[general]
anon-access = read
auth-access = write
password-db = passwd
12) Open the file password located at webMethods_SVN repository and add Integration Server and SVN Server users and save the file
Administrator = manage
admin = admin
Start the Repository using svnserve command
$svnserve -d -r C:csvn:data:repositories
13) Now you can access all the Repositories from svn://localhost
14) In Repo Browser access your Repository via svn://localhost
At this moment Authentication dialog might pop out. use your SVN user account to get into the repository. Please keep âSave authenticationâ option unchecked. Otherwise all changes to SVN are logged under one account.
15) Go to webMethods_SVN Repository create a folder test1/packages via add folder option
16) Do a SVN Commit to commit your changes to SVN Server and then Do SVN Update to synchronize your working directory with the repository content.
17) Now since your changes were committed at SVN server you now have to map SVN link to IS packages folder...see screenshot at the end
18) Open IS Admin console and Do the below settings at Settings -> extended settings
Add: watt.server.createPackage.ignorePattern=.svn
So, everytime when you do a chekin to your repository, your working directory which is IS/packages will exclude .svn files while placing them in a repository
Remove watt.server.ns.backupNodes Setting
19) If you have enabled the watt.server.ns.backupNodes setting, you must remove it. This
setting conflicts with the operation of the VCS Integration feature, which essentially
replaces it.
To remove the watt.server.ns.backupNodes setting
1 In the Integration Server Administrator, go to the Settings > Extended page.
2 Determine whether the watt.server.ns.backupNodes setting is displayed in the
Extended Settings list. If it is, go to step 4. If the setting is not visible:
a Click Show and Hide Keys.
b On the Settings > Extended > Show and Hide Keys page, look for the setting
watt.server.ns.backupNodes. If the setting is present, select the check box next to
watt.server.ns.backupNodes and click Save Changes. If the setting is not visible,
click Return to Extended Settings.
3 On the Settings > Extended page, click Edit Extended Settings.
4 In the Extended Settings text box, delete the watt.server.ns.backupNodes setting.
5. Click Save Changes.
20) Settings at Developer
1. Start Developer.
2. On the Tools menu, click Options, and then click General.
3. Under the Navigation panel, clear the Automatically unlock upon save check box, and then click OK.
21) Settings at Designer
1) Start Designer.
2 ) Go to Windows > Preferences > Software AG > Service Development > Package Navigator.
3 Clear the Automatically unlock upon save check box, and then click OK.
21) To configure the WmVCS package to work with Subversion
1 In Integration Server Administrator, go to the Solutions > VCS > Edit Configuration page.
2 In the Select Version Control System list, click Subversion, and then click Save Changes.
3 Restart Integration Server.
To map one Integration Server user to one VCS user
1 In the Integration Server Administrator, go to the Solutions > VCS > User Mapping >
Create New User Mapping page.
2 In the Integration Server User Name field, type the Integration Server user name and the VCS user name and password. Use the format Integration Server user name;VCS user
name;VCS password. Type the entry for each Integration Server user on its own line.
All user account credentials are case-sensitive.
Note: If you specify an invalid VCS user name and password, when commands are sent to the VCS client, the client will stop responding while awaiting the correct user name and password. As a result, Developer or Designer will also stop responding. Integration Server Administrator does not validate, create, or modify VCS users.
3 Click Save Changes.
The VCS Integration feature encrypts the VCS passwords and stores the VCS user names and encrypted passwords on Integration Server.
-> Your Repository should have the folder packages in it. Since your working directory would be IS/packages, Subversion expects a âpackagesâ folder in your repository.
Error: svn://localhost/packages, D:webMethods82IntegrationServerpackages]; exit value: 1; output: [svn: E170000: URL 'svn://localhost/packages' doesn't exist]
Go to your repository svn://localhost/ and create a folder and specify the SVN URL accordingly.
For Example: If you are creating svn://localhost/packages then your SVN URL should be svn://localhost/ and if you are creating /wM/packages then your SVN URL should be svn://localhost/wM/packages
Connecting to Subversion for the First Time
1 Go to the Solutions > VCS > Edit Configuration page and click the Advanced Settings link.
2 In the Subversion Repository Location field, type the URL for the Subversion repository.
3 Click Save Changes.
4 Restart Integration Server.
Re-Connecting to Subversion or changing the IP or Deleting:
Check the optionfirst whenever you delete the existing URL
Now your working copy or Directory /IS/Packages is subversioned.
Normal 0 false false false EN-US X-NONE X-NONE
Basic SVN Commands:
SVN Import:
To set an IS, one must first do the initial import in Subversion. This must be done prior to running the WmSubversion package and if you were not able to establish a svnlink from IS Admin console. To import IS into Subversion, run the following commands. (Note that path names and comments are more brief than in most environments.)
% cd D:webMethods82IntegrationServerpackages
Normal 0 false false false EN-US X-NONE X-NONE
% svn import -m "Initial import." . http://localhost/svn/webMethods_SVN/test1/packages --username=admin --password=admin
Note that because by default Subversion will import all files, one might first want to remove files that are generated, such as .bak, .class and node.ndf
files.
% cd .. % mv packages D:/archive %
svn checkout http://localhost/svn/webMethods_SVN/test1/packages --username=admin --password=admin packages
.
The subversion server can now be started using the command svnserve -D -r -R /home/user/myrepo/ (this runs on port 631). Since this command needs to be executed every time the system reboots, the user may use the system init scripts. Many linux distributions (like SuSE), which ship with svnserve provide the init script in /etc/init.d/. In this case the server can be started using (after modifying them to adjust the repository path):
svnserve as daemon:
The easiest option is to run svnserve as a standalone “daemon” process. Use the -d option for this:
$ svnserve -d
$ # svnserve is now running, listening on port 3690
When running svnserve in daemon mode, you can use the --listen-port and --listen-host options to customize the exact port and hostname to “bind” to. Once we successfully start svnserve as explained previously, it makes every repository on your system available to the network.
A client needs to specify an absolute path in the repository URL. For example, if a repository is located at /var/svn/project1, a client would reach it via svn://host.example.com/var/svn/project1. To increase security, you can pass the -r option to svnserve, which restricts it to exporting only repositories below that path. For example:
$ svnserve -d -r /var/svn
…
Using the -r option effectively modifies the location that the program treats as the root of the remote filesystem space.
To start SVN Repository
C:\svnserve -d –r C:\csvn\data\repositories\\
Via Repo browser, we can access through svn://localhost/
Where svn://localhost would be the root for C:\csvn\data\repositories\\
Clients then use URLs that have that path portion removed from them, leaving much shorter (and much less revealing) URLs:
$ svn checkout svn://host.example.com/project1
svnserve as a Windows service:
If your Windows system is a descendant of Windows NT (Windows 2000 or newer), you can run svnserve as a standard Windows service.
This is typically a much nicer experience than running it as a standalone daemon with the --daemon (-d) option. Using daemon mode requires launching a console, typing a command, and then leaving the console window running indefinitely. A Windows service, however, runs in the background, can start at boot time automatically, and can be started and stopped using the same consistent administration interface as other Windows services.
You'll need to define the new service using the command-line tool SC.EXE. Much like the inetd configuration line, you must specify an exact invocation of svnserve for Windows to run at startup time:
C:\> sc create svn
binpath= "C:\svn\bin\svnserve.exe --service -r C:\repos"
displayname= "Subversion Server"
depend= Tcpip
start= auto
This defines a new Windows service named svn which executes a particular svnserve.exe command when started (in this case, rooted at C:\repos). There are a number of caveats in the prior example, however.
First, notice that the svnserve.exe program must always be invoked with the --service option.
Any other options to svnserve must then be specified on the same line, but you cannot add conflicting options such as --daemon (-d), --tunnel,
or --inetd (-i). Options such as -r or --listen-port are fine, though.
Second, be careful about spaces when invoking the SC.EXE command: the key= value patterns must have no spaces between key= and must have exactly one space before the value. Lastly, be careful about spaces in your command line to be invoked. If a directory name contains spaces (or other characters that need escaping), place the entire inner value of binpath in double quotes, by escaping them:
C:\> sc create svn
binpath= "\"C:\program files\svn\bin\svnserve.exe\" --service -r C:\repos"
displayname= "Subversion Server"
depend= Tcpip
start= auto
Also note that the word binpath is misleading—its value is a command line, not the path to an executable.
That's why you need to surround it with quotes if it contains embedded spaces.
Once the service is defined, it can be stopped, started, or queried using standard GUI tools (the Services administrative control panel), or at the command line:
C:\> net stop svn
C:\> net start svn
The service can also be uninstalled (i.e., undefined) by deleting its definition: sc delete svn. Just be sure to stop the service first! The SC.EXE program has many other subcommands and options; run sc /? to learn more about it.
svn unlock --force
http://localhost/svn/webMethods_SVN/packages/Default/ns/Untitled/test/flow.xml
Do not use IS Admin console to unlock the elements used by VCS feature. If the lock status of an element is not correct then If these conditions occur, refresh the Developer Navigation panel. If the condition persists, apply the Check In command. If you are still having problems, check in theelement with the VCS client and restart the Integration Server.
svn resolve --accept working “working copy/filename”

Trim Fast Reviews
hello Vikram, I think I should have clarified this before asking my earlier question. I was not able to see -subversion- in drop down list when I was trying step no 21 in your blog. When I researched further, I realised that only those XYZ VCS systems will be visible in drop down for which we have installed corresponding wmXYZ package on IS. Probabaly, your IS has wmSubversion package when since it was installed.
Vikram
Abhijit, There is no need to have wMSubversion package if you are using any third party subversion server, you can only look for wMVCS package to configure your subversion, user mapping and specify your repository..see above screenshots and refer complete blog.
Vikram
Hi Ameer, You can use any subversion server, but the server version should be compatible with your IS. Check http://documentation.softwareag.com/webmethods/wmsuites/wmsuite9-0_sp1/Integration_Server/9-0-SP1_Configuring_the_VCS_Integration_Feature.pdf wM 9.0 sp1 supports only these.. Subversion 1.4, 1.6, and 1.7 Thanks
SATYALA ABHISHEK
I guess we need to have wmSubversion package installed on the IS. Unfortunately I do not have it on my IS. I tried to download from empower. But I could not locate it on empower. Can you suggest from where I can get it?
Sam Chary
Dear Vikram This is a greate artical. Actually, we had some issue impliminting the SVN. Can I use Subversion 1.8.5 (Windows 64-bit) as a subversion server?
Vikram
Abhijit, yes it's true.. my IS has wmSubversion package when since it was installed. 1. No there is no need to install it in same machine, i was working on a POC...later we achieved integration via different machines. 2. yes, i was using wM 8.2 version which supports till 1.6.x versions..while i was working there was subversion server 1.7.x available so mentioned term only..it should be till 1.6.x and 9.x has support for subversion serve 1.7x 3. Have you done user mapping for “Itegration Server Username” user in Solution > VCS > User Mapping along with the VCS Username..see above screenshots and also setting the path (path to svn bin folder) into environment variables and restart the IS can resolve this...
Rao
Hi Vikram, I have few questions.I must thank you for creating wonderful blog before getting into questions. 1. Does the SVN server need to be installed on same machine where IS is installed? In screenshotts above most of the time it is SVN URL is mentioned as localhost. 2. In wmSubversion package read me file, it is mentioned that it supports subversion versions 1.3 and later. But you blog says it supports only 1.6.*. Just wanted to double check. 3. I tried all the steps you mentioned. But when trying to save SVN URL in advanced setting as per step -Connecting to Subversion for the First Time -, it is showing below error: [8389]2014-01-08 19:19:33 IST [ISC.0077.9998E] Exception --> java.util.MissingResourceException: Can't find resource for bundle com.webmethods.vcs.resources.VCSExceptionBundle, key Cannot run program -svn-: CreateProcess error=2, The system cannot find the file specified Additional Info: The integration server is installed on windows machine. SVN is company server with repository URL and has -packages- directory created at the folder level mentioned in svn url.