The beer.xml initiative describes a standard format for beer recipes which can be used in multiple products. The theory being you can export a recipe from one system and import it into another system with full details.
BeerSmith uses a native XML format, but it is possible to export a recipe to beerXML format
BrewersFriend has an export function and you can select beerXML as one of the choices.
BrewMate saves recipes in the beerXML format
By importing a beer.xml file, we can analyse the file and display the ingredients, amounts, mash schedule, etc from the XML file which is attached to the brew log. So you can keep the master recipe somewhere and each time you brew and tweak a version of that recipe, you can attach that file to your brew log.
You can then always download the exact beer.xml file associated with a brew log to analyse it and use it to reproduce a certain version of your recipe.