public HgBundle GetBundle(HgRevset common, HgRevset heads)
        {
            var hgRevsetManager = new HgRevsetManager();
            var hgRevset = hgRevsetManager.GetRevset(this, common, heads);

            var hgBundleBuilder = new HgBundleBuilder(new HgFileSystem(), Encoder);
            var hgBundle = hgBundleBuilder.BuildBundle(this, hgRevset);

            return hgBundle;
        }
        public IList<HgChangeset> GetFileHistory(HgPath path, HgNodeID? startFilelogNodeID = null)
        {
            var filelog = GetFilelog(path);
            if(filelog == null) return null;

            var changesetNodeIDs = GetFileHistory(filelog, startFilelogNodeID ?? filelog.Revlog.Entries.Last().NodeID);
            
            var revsetManager = new HgRevsetManager();
            var revset = revsetManager.GetRevset(this, changesetNodeIDs);
            
            return GetChangesets(revset).OrderByDescending(c => c.Metadata.Revision).ToList();
        }