Using Git with SPServices on Codeplex

gitlogo@2xThis git thing gets a lot of press these days and I figure it’s time to learn it. I selected git as the code repo on the SPServices Codeplex site quite a while ago but never used it. Now I’m trying to figure out what would be useful.

SPServices has been a single file, as most of you know. However, each release has been made up of two js files (one minified, one not) and a license.txt, all in a ZIP file.

SPServices 0.7.2 ReleaseI’d like to be able to use git to:

  • Accept code from others and easily (relatively) merge it
  • Track changes better than I have been just on my hard drive and in my WSS 3.0 development environment
  • Provide offline documentation – This is a tricky one because I’ve used the Documentation wiki on Codeplex as my repository and I’m not sure how to pull the content out.
  • What else?

I welcome any thoughts you may have. I’m especially interested in how you think I can best accomplish the bullets about with a minimum of muss and fuss for everyone.

Paul Tavares (@paul_tavares) has already started a thread on the SPServices Discussions to get the ball rolling. Please jump in with your ideas or comment here.


  1. Hi Marc,

    The first two bullets *should* take care of themselves by virtue of using Git on Codeplex. Contributors can Fork > Edit > submit Pull Request to contribute code easily, and as you commit changes and use commit messages Git will take care of tracking changes for you. Release notes are a different story…

    As several people mentioned in the thread, I highly recommend GitHub. The GitHub client is pretty nice for basic operations like committing and pushing code, and you can always jump into the command line for more complex tasks.

    GitHub’s Pages feature ( would provide users with an easy way to download documentation; the pages themselves exist as a branch of your project. I’m not sure how valuable this is considering that most people working with SPServices will have internet access.

    I also second the suggestions in the Codeplex thread about keeping releases on Codeplex for download, as well as breaking the library up into smaller pieces and establishing a test/build process. Of course, not all of this has to happen at once :)


Have a thought or opinion?