snapshot 2006-04-14
authorJunio C Hamano <junkio@cox.net>
Fri, 14 Apr 2006 20:54:38 +0000 (13:54 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 14 Apr 2006 20:54:38 +0000 (13:54 -0700)
Doit
RB [new file with mode: 0755]
TODO
WI

diff --git a/Doit b/Doit
index 520e036..8a947d2 100755 (executable)
--- 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 (executable)
index 0000000..ebd5efe
--- /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 8b5dd0f..0d86e47 100644 (file)
--- 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.
-
-  <Pine.LNX.4.64.0601311807470.7301@g5.osdl.org>
-
-  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 f920144..e86accd 100755 (executable)
--- 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