Tutorial :How do I add fitnesse pages to version-control?



Question:

What is the recommended practice? Should I add the my sub-folder under the fitnesse folder to version control?

Context: working on a single developer rails pet project. I've my rails project under version-control (Subversion) however my fitnesse wiki pages lie under the fitnesse program folder.

Fitnesse seems to have its own version-control... (I see numbered zips along with each of my wiki pages) Is it reliable? Where does it store the revisions?


Solution:1

Use the -d switch (which is surprisingly low profile on a google search)

Fitnesse20081201>run -p 8080 -d c:/projects/MyProjectNeedsAcceptanceTests  

This will create a subfolder in the specified folder called FitnesseRoot if it doesn't already exist, with all the stuff it needs to run.

Fitnesse should be up. Switch to your browser. Go ahead and create your pages.

  • You will have a subfolder for every Fitnesse page you create.
  • Each folder would have a content.txt (which is the wiki content) and a properties.xml (which are the Fitnesse Properties for that page).
  • All subpages would be subfolders under the folder for the parent page.

Directories and Files...You're all setup for your first check-in to version control. Also set up your version control to ignore certain types of files

  • FitnesseRoot/files
  • FitnesseRoot/ErrorLog
  • *.zip

(The .zip files are how Fitnesse keeps track of edits to wiki pages.. a short term local version control. VCS like svn, git, cvs, etc.. should take care of this for us. So we don't need to check in the zip files)

Hope that made sense.. If not I suggest you take 15 mins off to listen to the following screencast from UncleBob himself
Source: Robert Martin - Version Control and Development Environment for Fitnesse


Solution:2

If you're using version control with Fitnesse, you won't need the zip archive for every revision. Use the -e 0 option to prevent the zip archives from being created:

java -jar fitnesse.jar -p 8001 -e 0


Solution:3

FitNesse stores old revisions of every page in a zip file in the same directory as the page's files. The zip filename marks the timestamp of the revision. It works similar to wikipedia - history, but not full-fledged version control.

In our company we wanted a setup where whenever we checkout a (possibly old) revision of the source, we also check out FitNesse tests that pass for that specific version.

Therefore, we installed FitNesse (the fitnesse directory, including the FitNesse executable and the FitNesseRoot directory) inside our source tree in version control, setting a rule to not import *.zip within the FitNesseRoot directory (as we have version control to keep history for us and don't need them).

This works excellent with sane SCMs (I used svn w/ svn-tortoise).

When we moved to Microsoft Foundation Server source control we had many issues with the checkout-edit-checkin workflow. Then again, this workflow is simply a bad idea in general, and should only be used by insane control-freaks.

(edit: answered commenter's question)


Solution:4

Since the 20090214 release of Fitnesse, CM integration is included, see user guide for details. http://fitnesse.org/FitNesse.UserGuide.SourceCodeControl

The git hub plugin is included with the fitnesse distribution.

I see a plug in for perforce at http://code.google.com/p/perforcecmsystem/, but I haven't got this setup for my team yet.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »