track of the changes that occur in an application between application releases to the production environment when you say you're using myapp you're referring to version of the myapp application versioning lets everyone know which application release is being used when bug fixes and other kinds of support take place numerous version control products are available for python one of the more interesting offerings is mercurial (com/you can get version of mercurial for almost any platform that python will run onso you don' have to worry about changing products when you change platforms (if your platform doesn' offer binaryexecutablereleaseyou can always build one from the source code provided on the download site unlike lot of the other offerings out theremercurial is free even if you find that you need more advanced product lateryou can gain useful experience by working with mercurial on project or two the act of storing each version of an application in separate place so that changes can be undone or redone as needed is called source code management for many peoplesource code management seems like hard task because the mercurial environment is quite forgivingyou can learn about source control management in friendly environment being able to interact with any version of the source code for particular application is essential when you need to go back and fix problems created by new release the best part about mercurial is that it provides great online tutorial at your own machine is the best way to learn about source control managementbut even just reading the material is helpful of coursethe first tutorial is all about getting good installation of mercurial the tutorials then lead you through the process of creating repository ( place where application versions are storedand using the repository as you create your application code by the time you finish the tutorialsyou should have great idea of how source control should work and why versioning is an important part of application development