Source Control

Source Control is Coming – Again and Finally!

Yesterday at Collabsphere I was in a great session by Dan Dumont that was simply titled “Source Control in Designer”.
Source control is nothing new to designer as we’ve had this for years. I think there are at least 6 episodes of NotesIn9 that either are dedicated or touch on source control.
So what is all this about if we have this now?
The current take on source control has several issues with it. While it does work better for XPages design elements it’s not very usable with classic Notes client focused elements. DXL does not properly “round trip” so you are forced to output those elements as binary files and if you ever have a merge conflict on a binary file you can just kiss your butt goodbye. You will not be able to resolve that conflict inside the source control workflow.
As for the XPages elements, while those are better, there are problems there, most notably things like “last modified date” getting updated and looking like a change when no change has been made. There is also extra files just for metadata that muddy things up that actually spawned a neat OpenNTF project called Swiper that tried to fix this. So while we have had source control available to us, lets just say that it was challenging to deal with.

In theory that ends with Version 14. Source Control has been rethought from the ground up. As best as I can understand it at the moment is that there will be a new option in the application properties that you can turn on “enhanced source control” (my term – I don’t know the actual text) and that will produce YAML files to represent the application. These YAML files will by default contain binary representations of the application. This is to make sure that nothing gets missed and it’s fully round trip safe. So even if new design elements are added later down the road, they will automatically be included in the YAML file creation. Then HCL is creating “translators”. (I forget their term) which will go into the binary information and translate it to text on an element by element basis. This text translation will allow us to see in source control, or a pure diff tool what the differences are. They are actively working to translate as much as possible but not everything will be translated by the time 14 drops and there was talk about creating an OpenNTF project where the community could add translations to assist in this going forward.

Oh another thing is that notes documents – think configuration documents – can also be included!!

This is testable now the 14 early preview via a command line but will be working inside Designer as one would expect by the time 14 goes gold. I’m looking forward to testing this as soon as I can.

I’ve not been able to keep up with all the things HCL has been doing (app Dev Pack, Domino REST API, Volt stuff, etc…) but for me as a simple Notes/Domino/XPage developer this is the most exciting thing I’ve seen in years and can’t wait to get into this and hopefully introduce true and proper source control to the dev team at my company.

Thank you HCL and a big thank you to Dan Dumont!!!

Notes In 9 Podcast XPages

NotesIn9 168 – Updating Source Control for Page Controllers

In today’s show I take a break from the Learning XPages series and do a little demo on updating a project in source control.  So it kind of goes with the Learning XPages series but really isn’t part of it.

The Learning XPages series is going on a little break while I work on a more important holiday project – but hopefully that project will turn into shows as well.

As always let me know if you have any comments or questions.


Learning XPages Notes In 9 Podcast XPages

NotesIn9 162: Learning XPages Part 3 – Source Control

In this show I continue setting up the programming environment by installing Source Tree and pulling down a project that we’ll be using later in the series.

My plan is to try and emulate real life, and real life needs some good quality source control so I will ideally be doing a lot of different things with source control along the way.

Notes In 9 Podcast XPages

NotesIn9 140: SourceTree Deep Dive

In this episode Paul Withers comes back on the show for a deeper look at using SourceTree and Git Flow. This comes from the session he did with Declan Lynch at IBM Connect.  In that session they ran out of time so this should fill in some of the missing pieces that they didn’t get to cover.

I use SourceTree and HG Flow which is the Mercurial version of Git Flow in my Day Job all the time.  While there are some quirks due to Designer and you do need to be careful and understand what’s going on, it is a really nice Source Control solution and I recommend it to any Developer.

Information on the original SNT session which included slides on setting up local servers if you don’t want to use something like BitBucket or GitHub can be found here:

P.S. I’m sitting at the Philly airport and uploaded this show from my iPhone.  Don’t ya just love technology sometimes?  haha

Notes In 9 Podcast XPages

NotesIn9 131: Use SourceTree for better XPages Source Control

In previous NotesIn9’s I’ve talked about using Source Control inside Domino Designer.  Well today it all changes! Whatever I said before..  forget it!

The great Jedi master Yoda once said:  “You must unlearn what you have learned”. I’m officially calling a “Do Over” and we’re going to start from scratch with Source Control.

This show focuses on using Source Control but in a whole new way.  Rather then trying to control it from inside Domino Designer we’re going to use a really great FREE external application called “SourceTree”.

This app supports Git and Mercurial and has built in “HG Flow” which really should take a lot of pain out of creating branches and releases.

I ATTEMPT to demo how to install SourceTree, how to use it with your XPages Applications and how to push it to the server and pull an application back down from the server.

This is an early video.  I’ve only barely started using this myself but I wanted to get this out right away for our internal development team as well as anyone else who’s interested. It took me a while to “get it” and I want to spare anyone the pain that I went through.  I will do a followup video as needed.

Big thanks go out to Nathan T. Freeman, Russ Maher and Declan Lynch for their help which led to this video.

Notes In 9 XPages

NotesIn9 044: Using Source Control Part 2

NotesIn9 Week Continues!

In this show I take another look at Source control in Domino Designer. I feel it’s an EXTREMELY important topic. There will hopefully more more shows coming as well.

In this show I talk more about the servers to hold your repository. We take a quick look back at Declan Lynch’s server that I demo’d in Episode 41 , and then I show how you might go about getting the information needed to build your own internal server.

Finally I take a long look at a hosted server called They can host your repositories, have free plans, and are at least a little bit XPAGES FRIENDLY!!! Woo Hoo!!!

Notes In 9 XPages

NotesIn9 041: XPages, Designer – SOURCE CONTROL!!

In this show I talk about what Source Control is, more importantly why even as a solo Domino Developer that you would want to use it, and I go into a hopefully fairly detailed demo on how to install it into Designer and how to use it.

I must be clear here that everything I know about this I learned from Declan Lynch. Check out his blog at He is the true expert. Hopefully he’ll be able to contribute his Lotusphere session to NotesIn9. 🙂

Personally I can’t emphasize enough that we as Notes/Domino developers, whether you’re using XPages or not, start understanding and using Source Control.