##master-page:HomepageTemplate #format wiki #language en == Jun Wu == Working at Facebook on source control. Email: `'\x40'.join(reversed(['fb.com', 'quark']))` IRC: `junw` === Some (interesting) contribution === * major * production-ize chg: (still [[https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-February/092547.html|on-going]]) * hg absorb: easiest way to do small changes to a draft stack. see [[http://files.lihdd.net/hgabsorb-note.pdf|a note introducing the feature]] * fastannotate: an attempt to speed up `annotate`. see [[https://groups.google.com/forum/#!topic/mozilla.dev.version-control/nh4fITFlEMk|some perf numbers]] * less known / minor * timepad: a POC about what I think source control could be integrated into a modern editor. see [[https://quark-zju.github.io/timepad/|a demo]] * hg collate: an alternative implementation of `hg absorb -e`. see [[https://bitbucket.org/quark-zju/hgext-collate|the code]] * drawdag: a way to draw test cases using AsciiArts. see [[https://www.mercurial-scm.org/repo/hg/file/88203f26/tests/drawdag.py|the code]], and [[https://www.mercurial-scm.org/repo/hg/file/88203f26/tests/test-rebase-base.t|an example test]] === Random items in wishlist (in no particular order) === * In-memory DAG writes (waiting for smf) * Sane obsolete markers cycle handling * Cleaner (decoupled from Python.h) changelog index in C, so it could be better optimized * Phase/head-based repoview. (see [[https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-February/093442.html|the preliminary idea]]) * Unique linkrev per revision (by having some salt coming from the commit node) * A separate blob layer (file nodes store blob IDs instead of file contents) * More flexible graphlog (make things like issue5434 solvable, and allow more possibilities like diffing two DAGs) * Backport a more correct yet efficient diff algorithm (bdiff outputs suboptimal results for large json files) * Word-level merge (see [[https://bitbucket.org/quark-zju/hg-draft/commits/156d392a113017408ad3051a5c588025349a4028?at=splitword|a hacky POC]]) * UUIDs in manifest to track renames (and give filelogs better names) ---- CategoryHomepage