New ideas and suggestions

1. Web application to manage users and repos using hgwebdir and ssh authentication

It would be very useful having an app that would:

2. Add stats support to hgweb and hgwebdir

Hg web servers could add a page providing some useful stats for the existing repos like what [http://statcvs.sourceforge.net/statcvs-stats/ StatCVS] does.

3. Application to create, validate and initialize configuration files

It would be very useful having an app that would allow:

It could have:

It should at least have a text interface (a simple one to do the first time configuration, as asking for username, email, editor...)

4. Greater flexibility for merge/export

Experience from several other systems suggests that the current approach to handling BinaryFiles is not adequate. mpm is absolutely right that the notion of a binary file is intrinsically confused. Unfortunately, that doesn't mean that we can avoid it. This needs some discussion, so I'm attempting to add a page for that: NewIdeas/FileTypes

5. User friendly off-line synch of distributed repos using "Bundle Digest"

see [http://www.selenic.com/mercurial/bts/issue392]

6. Combine the advantages of named branches and clone branches

Named branches ("hg branch" command) have the following advantages:

Clones have the following advantage:

The ideal solution would unify clones and named branches and combine the advantages of both systems.

One possibility (but probably not very good) would be to have a shared top-level folder that stores all changesets of the reference repo. This top-level folder then contains subfolders for each checked-out branch and these subfolders only store the additional changesets for the top-level folder and the actual source files of the checked-out revision. For example:

7. Provide a simple function/tool for creating changelogs

It would be nice to have a tool that assists you in changelog creation. SVN can export the history as XML and svn2cl can convert that into a nice-looking changelog. We should have something similar (maybe without the extra XML conversion step).

You can use hg log --style=changelog for this, and XML is not the solution to everything. -- ThomasArendsenHein DateTime(2006-12-07T09:43:51Z)

8. Provide an extension to publish repos using just rsync/ftp

This extension would allow for a full serverless solution for publishing and accessing Mercurial repos.

It would allow to publish repos with just a ftp server or an rsync server, as most web hosting services have (even the free ones) and read them (to clone or pull changes) using using the static-http protocol.

A convenience command to browse the the remote repo history would be very good, even if that involves locally cloning the remote repo before using the log browser or launching the smart server to view it on a browser.

9. Extend push/pull to include progressbar

This would make me very happy. I use hg to manage my personal photo collection (several gigs) and transfers take really long. Some progress indication would be nice...

It doesn't have to be a percentage gauge, only a "sending diff for file 456 of 78678" would be fine, too...

10. Suggestions for handling commit text

(This is already covered in TipsAndTricks under "Adding a commit message template")

I already have an idea for the changes for the second item. If my limited understanding of Python is correct, it would simply be necessary to add a call to the hook as: {{{newtext = self.hook("committextverify", text, parent1=xp1, parent2=xp2); if newtext is None:

text = newtext; }}}

11. Add shelve/unshelve extension

A convenient feature in bzr is that provided by shelve/unshelve, so changes that haven't been commited can be selected, discarded or put aside interactively using the shelve command and with a diff hunk granularity. That way, you can backup and put aside some of the hunks, commit the rest, and later restore the shelved hunks using the unshelve command.

To see the how the original shelve plugin for bzr works have a look to [http://bazaar-vcs.org/BzrShelveExample its webpage].

Note: The QctExtension supports a simpler model of change selection. You can select the individual changes to be included in a commit, and all remaining changes are left in the working directory after the commit.

+ add for a darcs-style interactive cherrypicking on commit (with a diff hunk granularity at least, maybe the possibility to split a hunk in sub-hunks before picking them)

12. New log styles

13. Add RSS feed for new repos to hgwebdir

Fairly self-explanatory, wouldn't you say? I want to keep abreast of what a person/organisation is doing, and they might not announce new repositories on their mailing list.