As developers, one of the most important tools that we use daily is our version control system. Mercurial is one such tool that is written in Python, making it eminently flexible, customizable, and incredibly powerful. This week we spoke with Augie Fackler to learn about the history, features, and future of Mercurial.
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com
- Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project
- We are also sponsored by Sentry this week. Stop hoping your users will report bugs. Sentry’s real-time tracking gives you insight into production deployments and information to reproduce and fix crashes. Check them out at getsentry.com and use the code podcastinit at signup to get a $50 credit!
- Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
- To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
- Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
- Your hosts as usual are Tobias Macey and Chris Patti
- Today we’re interviewing Augie Fackler about the Mercurial version control system
Interview with Augie Fackler
- How did you get introduced to Python? – Chris
- Can you describe what Mercurial is and how the project got started? – Tobias
- How did you get involved with working on Mercurial? – Tobias
- What are some of the features that can be found in Mercurial which are lacking in similar tools such as Git or Bazaar? – Tobias
- One of the common complaints with Git is that its human interface could use some work. How is Mercurial’s UX an improvement over Git? – Chris
- For someone who is using Mercurial to work with a Git or other VCS repository, what are some of the edge cases that they should watch out for? Are there certain operations that could be performed in Mercurial which would break that compatibility layer? – Tobias
- How is Mercurial architected and what are some of the design choices that allow for it to be so flexible and extensible? – Tobias
- One of the core goals of Mercurial is for it to be safe. Can you explain what safety means in this context and how it is architected to achieve that goal? – Tobias
- One of the noteworthy aspects of Mercurial is the strong focus on making extensions a first-class concern in the project, so much so that a number of the core functions are written as extensions. Can you describe why that is and how the extensions plug into the core execution engine? – Tobias
- What are some of the most notable extensions that are available for use with Mercurial? – Tobias
- For someone who is familiar with Git, what are some of the concepts that they would need to learn about in order to use Mercurial in an idiomatic way? – Tobias
- A large part of the reason that Git has seen such large adoption is due to the prevalence of GitHub. There is the option of using BitBucket when using Mercurial. Are there any other noteworthy Mercurial hosting options? Do you think that the dearth of open source mercurial servers is partially due to the fact that Mercurial ships with a functional server built in? – Tobias
- Can you share some of the most recent features that have been added to Mercurial? – Tobias
- What do you have planned for the future of Mercurial? – Tobias
- How do you think current day DVCS systems like Mercurial, Git and Darcs might evolve in the future? – Chris
Keep In Touch
- Mercurial: The Definitive Guide
- Git Pickaxe
- Facebook Mercurial Post
- Remote File Log
- Mozilla Review Board
- A Case of Computational Thinking: The Subtle Effect ofHidden Dependencies on the User Experience of VersionControl