From f8ab671134121663f27a75f64e941a40d2a3bff1 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 14 Apr 2006 13:54:38 -0700 Subject: [PATCH] snapshot 2006-04-14 --- Doit | 2 +- RB | 42 +++++++++++++++++++++++++++++++++++++ TODO | 78 ++++++-------------------------------------------------------------- WI | 13 +++++++----- 4 files changed, 57 insertions(+), 78 deletions(-) create mode 100755 RB diff --git a/Doit b/Doit index 520e0361..8a947d2f 100755 --- a/Doit +++ b/Doit @@ -8,7 +8,7 @@ test -z "$(git diff --cached --name-status)" || { } Meta/Make clean >/dev/null 2>&1 -branches='next master maint' +: ${branches='next master pu'} nstall=install for branch in $branches diff --git a/RB b/RB new file mode 100755 index 00000000..ebd5efea --- /dev/null +++ b/RB @@ -0,0 +1,42 @@ +#!/bin/sh + +master_sha1=`git rev-parse --verify refs/heads/master` +LF=' +' +(cd .git/refs/heads && find -type f) | +sed -n \ + -e 's/^\.\///' \ + -e '/^[^\/][^\/]\//p' | +while read topic +do + rebase= done= not_done= trouble= date= + topic_sha1=`git rev-parse --verify "refs/heads/$topic"` + + date=` + git-rev-list -1 --pretty "$topic" | + sed -ne 's/^Date: *\(.*\)/ (\1)/p' + ` + only_next_1=`git-rev-list ^master "^$topic" next | sort` + only_next_2=`git-rev-list ^master next | sort` + rebase= + if test "$only_next_1" = "$only_next_2" + then + not_in_topic=`git-rev-list "^$topic" master` + if test -z "$not_in_topic" + then + :; # already up-to-date. + else + rebase=" (can be rebased)" + fi + fi + if test -n "$rebase" + then + echo "Rebasing $topic to pick up:" + git-rev-list --pretty=oneline "^$topic" master | + sed -e 's/^[0-9a-f]* / * /' + git checkout "$topic" && + git rebase master || break; + fi +done + + diff --git a/TODO b/TODO index 8b5dd0f0..0d86e47d 100644 --- a/TODO +++ b/TODO @@ -17,45 +17,23 @@ if ever -- only if somebody cares enough and submits a clean patch, perhaps ;-). -Documentation -------------- - -* No pending issues at the moment. "Revamp Tutorial" initiative - by Bruce Fields ongoing and things are looking better. - - UI -- * Make "git branch -d foo" while on foo branch suggest "maybe you want to go back to 'master'?" -* Error message from "git checkout -b bar v2.6.10" should assume - v2.6.10 is an attempt to switch to a new branch based on - mistyped tag, not an attempt to revert path v2.6.10 from the - HEAD commit with extra "make and switch to this branch" - argument. - -* "git commit [-i|-o] paths..." with misspelled paths would be - silently ignored. Add a flag to ls-files to catch unmatched - pathspec to prevent this. - Design issues ------------- -* Rehash "git commit" with various parameters to be more - intuitive without breaking traditinal users too much. We need - to phase this in, especially if we are going to change "git - commit" to imply the current "git commit -a" behaviour. - -* "intent to add" index entries. +* "intent to add" index entries? * Plug-in file-level merges. On the other hand, we may not even need this; just tell people to run "xxdiff -U" on the working tree files. -* Doing a merge in a separate directory. +* Doing a merge in a separate directory? * Make 'format-patch' take revision limiters similar to rev-list. For example: @@ -101,17 +79,14 @@ Technical (heavier) This needs a matching smart on the dumb protocol downloader. -* Maybe an Emacs VC backend. - -* Look at libified GNU diff CVS seems to use, or libxdiff. - [Daniel has his own diff tool almost ready to start - integrating and testing] - Technical (milder) ------------------ -* "git status -v" to give commit preview. +* Shallow clones. + +* Encourage competition between annotate vs blame. Maybe come + up with some nontrivial test cases. * Subprojects. I think the "bind commit" approach has been outlined at sufficiently detailed level. Maybe find time to @@ -119,34 +94,6 @@ Technical (milder) <7vacdzkww3.fsf@assigned-by-dhcp.cox.net> -* Shallow clones. - -* Mark entries as "assume unchanged" in the index. - - - - A config item '[core] trust_stat = false' would cause to: - - - "update-index" with or without --add would mark the path - valid after registering. Should we make the working tree - file read-only at this point? - - - checkout-index -u would mark the path and makes the working - tree file read-only. - - - read-tree without -u would mark the path invalid. - - - update-index --refresh should *not* mark up-to-date paths valid. - - Impacts to various commands: - - - update-index --refresh would ignore them. - - - diff-files would say unchanged. - - - diff-index without --cached acts the same way as diff-index - --cached. - * Decide what to do about rebase applied to merged head. One extreme is to allow rebase if "rev-list ours..theirs" gives anything. This loosens the current merge-base based approach. @@ -164,8 +111,6 @@ Technical (milder) <20060114021800.4688.qmail@web31803.mail.mud.yahoo.com> -* Perhaps a smarter HTTP anonymous download via CGI. - * diff stopping at the first output; qgit wants to know if this tree has any A or D from the other tree and nothing else. Would help internal tree-diff in rev-list as well. @@ -179,22 +124,11 @@ Technical (milder) * Perhaps detect cloning request in upload-pack and cache the result for next cloning request until any of our refs change. -* Perhaps accept patch to optionally allow '--fuzz' in - 'git-apply'. am/applymbox is _not_ the place to do it. - -* Allow 'git apply' to accept GNU diff 2.7 output that forgets - to say '\No newline' if both input ends with incomplete - lines. - * Perhaps deal with "Files differ" (binary diff) in non C locales. * Maybe grok PGP signed text/plain in applymbox as well. -* Output full path in the "git-rev-list --objects" output, not - just the basename, and see the improved clustering results in - better packing [Tried, but did not work out well]. - Technical (trivial) ------------------- diff --git a/WI b/WI index f9201442..e86accda 100755 --- a/WI +++ b/WI @@ -1,11 +1,14 @@ #!/bin/sh # Prepare "What's in git.git" +master_at=$(git rev-parse --verify refs/heads/master) + echo "To: git@vger.kernel.org" echo "Subject: What's in git.git" +echo "X-master-at: $master_at" tagged=`git rev-parse --not --verify tags/sa/master` -list=`git-rev-list $tagged heads/master 2>/dev/null` +list=`git-rev-list $tagged refs/heads/master 2>/dev/null` if test -n "$list" then echo @@ -14,22 +17,22 @@ then git log $tagged heads/master | git shortlog fi -list=`git-rev-list heads/master..heads/next 2>/dev/null` +list=`git-rev-list refs/heads/master..refs/heads/next 2>/dev/null` if test -n "$list" then echo echo echo "* The 'next' branch, in addition, has these." echo - git log --no-merges heads/master..heads/next | git shortlog + git log --no-merges refs/heads/master..refs/heads/next | git shortlog fi -list=`git-rev-list ^heads/master ^heads/next heads/pu 2>/dev/null` +list=`git-rev-list ^refs/heads/master ^refs/heads/next refs/heads/pu 2>/dev/null` if test -n "$list" then echo echo echo "* The 'pu' branch, in addition, has these." echo - git log --no-merges ^heads/master ^heads/next heads/pu | git shortlog + git log --no-merges ^refs/heads/master ^refs/heads/next refs/heads/pu | git shortlog fi -- 2.11.0