2010-08-01 5 views
0

J'ai récemment trébuché sur une fonctionnalité fraîche dans CVS où vous pouvez nommer les révisions par date, par exemple:Quels autres systèmes de référentiel ont l'option -D (date) de cvs?

# List changes made between the latest revision 24 hours ago and now 
cvs diff -D "1 day ago" 

-il d'autres systèmes du dépôt (par exemple Git, SVN, Bazar, Mercurial, etc.) ont une option comme ce?

Répondre

1

Mercurial a une large gamme de formats de date: http://www.selenic.com/mercurial/hg.1.html#date-formats, mais peut-être pas "il y a 1 jour".

This subversion bug report indique que Subversion ne peut pas le faire en mode natif, mais offre une pointe sur l'utilisation date pour le faire:

(2) Alors que Subversion ne comprend pas -r « {Il y a 3 jours} ", date peut aider aussi là-bas: -r" {date -Is -d '3 days ago'} ".

0

(répondre à ma propre question)

git log supporte les dates pour le filtrage avant ou après des temps donnés. Exemple:

git log --after='july 17 2010' --before='july 31 2010' 

Voici un script shell qui le rend un peu plus facile à la liste des gammes de commits, mais il utilise également un format terser que par défaut du journal git:

#!/bin/sh 
# git-changes 

FORMAT='%cd%x09%h%n%x09%s%n' 
CMD="git log --format=format:$FORMAT" 

case $# in 
    0) 
     $CMD ;; 
    1) 
     $CMD "--after=`date -d "$1"`" ;; 
    2) 
     $CMD "--after=`date -d "$1"`" --before="`date -d "$2"`";; 
esac 

Note: J'enroulai la date arguments avec la commande date, car git traite 'July 17' comme étant à quelques heures de 'July 17 2010' pour une raison quelconque.

Utilisation:

git-changes     # Same as git log, but more terse 
git-changes 'yesterday'  # List all commits from 24 hours ago to now 
git-changes 'jul 17' 'aug 1' # List all commits after July 17 at midnight 
          #    and before August 1 at midnight. 

Exemple de sortie de git-changes 'jul 17' 'aug 1':

Sat Jul 31 23:43:47 2010 -0400 86a6727 
     * Moved libcurl into project directory as static lib. 

Sat Jul 31 20:04:24 2010 -0400 3a4eb10 
     * Added configuration file support. 

Sat Jul 31 17:44:53 2010 -0400 aa2046b 
     * Fixed truncation bug in bit parser. 

Sat Jul 17 00:10:57 2010 -0400 99e8124 
     * Added support for more bits. 

Maintenant, pour voir tous les changements introduits par commettre 99e8124, le type git show 99e8124. Pour voir tous les changements depuis la révision 99e8124 (sans inclure cette validation), tapez git diff 99e8124.

Questions connexes