Introduction
Source code (and other items) for CUAHSI HIS products can be managed with source control. This page describes the CUAHSI source control system.
Location
https://svn.sdsc.edu/repo/WATER
http://nladr-cvs.sdsc.edu/WATER/CUAHSITESTING PRACTICE AREA: https://svn.sdsc.edu/repo/WATER/CUAHSI/sandbox
- DASH: https://svn.sdsc.edu/repo/WATER/CUAHSI/DASH
- WebServices: https://svn.sdsc.edu/repo/WATER/CUAHSI/WebServices
- DataModel: https://svn.sdsc.edu/repo/WATER/CUAHSI/ODM
- DataLoading: https://svn.sdsc.edu/repo/CUAHSI/ODM/dataloading
- ODM Tools: https://svn.sdsc.edu/repo/WATER/CUAHSI/ODM/odmtools
- Other Tools for ODM: https://svn.sdsc.edu/repo/WATER/CUAHSI/ODM/tools
- hydroseek: https://svn.sdsc.edu/repo//WATER/CUAHSI/hydroseek
- HydroObjects: https://svn.sdsc.edu/repo/WATER/CUAHSI/HydroObjects
- Ontology: https://svn.sdsc.edu/repo/WATER/CUAHSI/OntologyOwl
Access
To get access, ask SDSC to contact JD Bottorf (jd @ sdsc.edu)
Users with write access: valentin, whitenac, mattr, zaslavsk, jeffh, twhit, esri
borabe (Bora Beran) microsoft.com
eddymul Eddy Mulyono(CSU east bay)
nicholasjarnold Nick Arnold( IIHR – The University of Iowa)
Configure
Configure settings by right clicking on a folder and then pointing to TortoiseSVN - Settings.
On the General page, set the global ignore pattern. If you don't ignore these files, then your downloaded version of the source code may not compile.
- set ignore to: *.vsscc *.vsdmi *.suo _Resharper.* *.user obj *.pdb Debug Release Staging Production
Debug,Release, Staging and Production are used in setup projects (and in obj directories), they can be ignored.
Best Practices
We are learning how to use subversion for vs2005... so this is rough, and we will make some mistakes.
- relative paths in your solutions
- be sure you have the ignore list
- CLEAN before committing... and go through and check by hand, especially the first time
- avoid including .dll, if possible.
What is the optimal solution layout
Ankh will perform best(solution load time, refresh time etc...) when the file system layout of the solution follows the logical layout. That means something like this:
SolutionDir\
Solution.sln
Project1\
File1.cs
File2.cs
SubNamespace\
File3.cs
File4.cs
Project1.csproj
Project2\
Foo.vb
Bar.vb
SubFoo\
Moo.vb
Project2.vbproj
Project3
Ooga.cpp
Ooga.h
Chacka.cpp
Chacka.h
Project3.vcprojVS will create this kind of layout for you if you check the "Create directory for solution" checkbox when creating a new project.
How To
Upload Files
If you are using TortoiseSVN:
- CLEAN PROJECT BEFORE UPLOADINGWebApp Cleanup before importing - It's much better to clean up files and folders before you upload them, rather than try to clean things up once your files are already in the system. Examples of file cleanup:
- Remove unnecessary or temporary files, such as files you were using for initial testing.
- Edit documentation so that it is readable by a new user, and doesn't contain cryptic notes that only you understand.
- Make sure all reasonable dependencies are located in the folder that you will be uploading. For example, consider an application located in a folder called "MyApp". The application makes use of a file called "sites.shp" that is located in a separate folder called "Data". You should move either sites.shp or the entire Data folder into the MyApp folder, and re-map your application so that it looks for the data in its new location.
- Right click on the directory for upload, then point to TortoiseSVN - Repo-browser.
- Specify the URL of the directory where the files will be uploaded to (e.g. do a test in the sandbox first).
- You will now add a new folder to store your data. In the Repository Browser, right click on the folder that will be the parent of your new folder, and click Create folder. Give the folder a name, such as the same name as the source folder on your own machine, e.g. "MyApp". This creates a new folder underneath the parent folder that you clicked on.
- Close the Repository Browser.
- On local machine, right click on directory to upload, then point to TortoiseSVN - Import. Make sure you:
- CLEANED PROJECT BEFORE UPLOADING
- Set the items to ignore, as shown in the "Configure" section.
- Make sure the target folder is the folder that you just created on the server. For example, for the "Create folder" step above, if I added a "MyStuff" folder, then my target for the Import is the "http://nladr-cvs.sdsc.edu/WATER/CUAHSI/MyStuff" folder.
- Specify a log message something like: Uploaded such and such, and click OK.
- Click OK to close the progress dialog when the process is complete. Note
Check Out Files
- Make a new directory on your local computer. For example, you might create a "Subversion" folder, and then create a subfolder of Subversion called "MyApp".
- Right click on the folder and click SVN Checkout.
- Specify the URL of the repository and click OK. Click OK to close progress window when download is completed.
- If you downloaded source code, try to compile the code.
Check In Files
- Right click on the folder and then point to TortoiseSVN - Clean up.
- Right click on the folder and click SVN Commit.
- If you deleted any files, and they should remain deleted, then be sure to check them in the update list.
== Windows Tools == - TortoiseSVN, a good Windows Explorer extension, despite it's lack of support of Unicode support in any of its Diff tools. http://tortoisesvn.tigris.org/download.html
- http://www.daveswebsite.com/software/tamtamsvn/
- http://www.visualsvn.com/ commercial client.
- AnkhSVN -not a true SCC plug-in, instead works as an add-in, but has much better functionality that the other couple of SCC controls that I've tried. http://ankhsvn.tigris.org/
- SVN Explorer - pretty basic tool, but at least provides a stable Explorer-like stand-alone repository explorer. http://kafana.org/SvnExplorer/
- WinMerge - an excellent freeware open-source file Difference viewer, and merge tool WITH unicode support (use the WinMergeU.exe file). http://winmerge.sourceforge.net/downloads.php
- imageDiff - good free tool for comparing two images for changes. http://www.download.com/ImageDiff/3000-2192_4-10401779.html. Note: connects to the internet to display ads in a pane at the bottom, but if you use Zonealarm, then disable Internet access, whilst allowing access to the trusted zone. This prevents the program from freezing, without allowing it to display ads.
- Finally - WebReports8, another VSS.NET add-in. I haven't actually finished trying this, but it has some nice features. You'll have to re-compile it with the "_scc" option. See here http://www.codeproject.com/dotnet/file_diff_and_webreports.asp#xx1167087xx read the details on the modification that needs to be performed, then scroll up to the main article)
- Hoksoft Tortoise SVN/Utilities Add-In http://devutilities.googlepages.com/home, http://devutilities.googlepages.com/hoksofttortoisesvnutilitiesadd-in