#pragma section-numbers 2 <> = 2.9 Sprint Notes = Notes from the 2.9 development sprint. For planning, see [[2.9sprint]]. <> == GSoC == * Flow control was a problem. * "Patch 1 has to happen as soon as possible" - mpm * We need a wiki page on how GSoC should go - TheMystic, mpm, smf? == Flow control == * Flow control issues we had with GSoC apply to the project in general. It's hard to keep track of updated series. * Automate closing of patches/bugs that have had no activity for a long period of time - mpm * We should prototype a replacement for Patchwork. * Patches in Patchwork are usually out of date and require cleanup. * Hard to identify patch series threads. * A mail bot that runs check-code, etc. would be nice. * Clean up/clarify Bugzilla workflow. - mpm * Ping people that submitted a bug when a pre-lease is put out - marmoute == Big repos == * Facebook rewrote inotify using watchman (to speed up hg status) called [[https://bitbucket.org/facebook/hgwatchman|hgwatchman]] * Narrow clone would be helpful * Should we change the manifest format? == Revsets == * Make them generative. - mpm * Replace log code "monstrosity" with the graph log code (this is "98% done"). * Revset shorthand to find all changesets on a branch (including all heads) excluding changesets common to another branch. == Templater == * String escaping woes. - mpm, smf, durin42 * Expose working directory, active bookmark, etc. * Global templates, templates for commands other than hg log. - mpm * Color extension doesn't integrate well with the templater? - marmoute == Linkrevs with filtering == * hg log filename/hg annotate doesn't play well with hidden revisions (which may have links to file revisions). * Sudoku-like algorithm? == Advocacy == * More writeups by large users * Training videos * "hg tutor"? * Marketing page with selling points * We should clear up confusion around who to talk to when large projects are having issues with Mercurial. We should identify project liaisons. * Git <-> Hg rosetta stone that's prettier and more prominent than GitConcepts - mjturk, durin42, TheMystic * Grep "Pro Git" for important things to include * ScaleMercurial wiki page * Might want to "market" these efforts on Hacker News, reddit, etc? * Promote the online "learn hg" sites that port the "learn git" ones to use hg == Usability == * Enable more extensions by default * Allow some form of streamlined config editing - TheMystic * Proper shelve/stash solution * Better "hg log" == bundle2 == * "This is a blocker for lots of interesting things, and we need to put a lot of effort into it." - mpm == Python compatilibity == * durin42 is working on getting "hg help" to run under Python 3. This requires fixing some import cycles (which currently work under Python 2 due to usage of relative imports). == Infrastructure == * [[ProjectInfrastructure]] - We need to document who admins/has access to what. * We may need to rewrite wiki spam countermeasures in the future. == Packaging == * Include all platform-specific build scripts in main Mercurial repository. * Automate builds (instead of relying on various contributors). == Deprecation == * Deprecate: hg parents, children extension, graphlog, inotify, transplant, win32text * Nuke: interhg * Contrib: old templates == Shelve == * We should make that better, or something. == Manifest compression == * More compression gains to be made. == Clone cache == * kiilerix, durin42 have different solutions. (Someone fill this in with more detail, please!) == Scalability == * Add Scalability page to wiki * Reduce open/close revlog calls. * Delta caching. * Pushing unauthenticated ends up doing two full pushes. * Repos with many heads can send more header data than nginx can handle by default. == Patch meta == * With more patch metadata, we can make hg import --exact more exact. * Add more metadata to patches: * obsolescence markers, * things in the "extra" field * We'd need special handling for unprintable keys/values (e.g., transplant). == Bookmarks == * "@" keeps getting messed up on the Hg repo--probably due to a bug (or bisect) * "@" is confusing * Warn when deactivating a bookmark (and perhaps give the command to go back to that bookmark) * Show active bookmark more aggressively * Warn on pull when a remote bookmark has changed == Obsolete markers == See also [[2.9sprintObsoleteNotes]] == Resolve State == * Keep a line for each prompt so that a user can redo a prompt * Hide second (weird) parent from summary * 'other' and 'local' are non-intuitive * Rebase switches these * Could take the first line of the commit message * Could use bookmark, branch, etc. == Copied files == * Better algorithm from mpm can extend addremove and run fast