Jeff King wrote: > - ideas ideas ideas I'll throw in a few ideas from half-finished work. 1. Speed up git-rebase--am.sh Currently, git-rebase--am.sh is really slow because it dumps each patch to a file using git-format-patch, and picks it up to apply subsequently using git-am. Find a way to speed this up, without sacrificing safety. You can use the continuation features of cherry-pick, and dump to file only to persist state in the case of a failure. Language: Shell script, C Difficulty: Most of the difficulty lies in "what to do", not so much "how to do it". Might require modifying cherry-pick to do additional work on failure. 2. Invent new conflict style As an alternative to the diff3 conflict style, invent a conflict style that shows the original unpatched segment along with the raw patch text. The user can then apply the patch by hand. Language: C Difficulty: Since it was first written, very few people have touched the xdiff portion of the code. Since the area is very core to git, the series will have to go through a ton of iterations. 3. Rewrite git-branch to use git-for-each-ref For higher flexibility in command-line options and output format, use git for-each-ref to re-implement git-branch. The first task is to grow features that are in branch but not fer into fer (like --column, --merged, --contains). The second task is to refactor fer so that an external program can call into it. Language: C Difficulty: fer was never written with the idea of being reusable; it therefore persists a lot of global state, and even leaks memory in some places. Refactoring it to be more modern is definitely a challenge. 4. Implement @{publish} (I just can't find the time to finish this) @{publish} is a feature like @{upstream}, showing the state of the publish-point in the case of triangular workflows. Implement this while sharing code with git-push, and polish it until the prompt shows publish-state. Language: C, Shell script Difficulty: Once you figure out how to share code with git-push, this task should be relatively straightforward. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html