Code

git reflog expire
authorJunio C Hamano <junkio@cox.net>
Tue, 19 Dec 2006 08:23:12 +0000 (00:23 -0800)
committerJunio C Hamano <junkio@cox.net>
Thu, 21 Dec 2006 01:22:10 +0000 (17:22 -0800)
commit4264dc15e198bf9e9a2bb4ee897dd8e3eaabca47
treeb328488193840679fd8c1dc289020ff311c76d4a
parent2ecd2bbcbe5335c1d9209b6ce28513e4e9d3491b
git reflog expire

This prepares a place to collect reflog management subcommands,
and implements "expire" action.

$ git reflog expire --dry-run \
--expire=4.weeks \
--expire-unreachable=1.week \
refs/heads/master

The expiration uses two timestamps: --expire and --expire-unreachable.
Entries older than expire time (defaults to 90 days), and entries older
than expire-unreachable time (defaults to 30 days) and records a commit
that has been rewound and made unreachable from the current tip of the
ref are removed from the reflog.

The parameter handling is still rough, but I think the
core logic for expiration is already sound.

Signed-off-by: Junio C Hamano <junkio@cox.net>
Makefile
builtin-reflog.c [new file with mode: 0644]
builtin.h
git.c