Agregue el nombre de la etiqueta a la salida "git log --graph --format=format:'%h - %s'"

¿Cómo agrego la salida de

# Get tag distance $(TAGDIST) 
git describe --tags | \
awk '{split($0,TagNameWithTagDist,"-g");
     i=split(TagNameWithTagDist[1],TagDist,"-");
     print(TagDist[i]);}'

a la salida de lo siguiente?

git log --graph --format=format:'%h - %s + $TAGDIST'

no veo en el Sección “Pretty Formats” de los git-log documentación un marcador de posición que corresponde a este valor. Marcador de posición %d muestra el nombre de la etiqueta en la confirmación donde se creó únicamente.

preguntado el 12 de junio de 12 a las 17:06

1 Respuestas

Copie el código a continuación como un archivo llamado git-logtagdist en algún directorio en su camino. Tenga en cuenta que funciona lentamente porque bifurca una nueva git-describe proceso para cada compromiso. Puede acelerarlo agrupando el git-describe carreras.

#! /usr/bin/env perl

use strict;
use warnings;

use Git;

my $repo = Git->repository;

my @logcmd = (
  "log", "--color=always", "--graph",
  "--format=format:%h - %s - !!!DISTANCE!!!",
);

my($fh,$ctx) = $repo->command_output_pipe(@logcmd);

if (-t STDOUT) {
  my(@pager) = $ENV{GIT_PAGER} || $ENV{PAGER} || ("less", "-R");
  open STDOUT, "|-", @pager or die "$0: open: $!";
}

while (<$fh>) {
  # e.g., 797166c - Merge branch 'maint' - !!!DISTANCE!!!
  s<([0-9a-f]{7,})\b(.+ - )!!!DISTANCE!!!> {
    my($sha1,$msg) = ($1,$2);
    my $distance;

    # e.g., v1.7.9.2-334-g797166c
    chomp(my $describe = $repo->command("describe", "--tags", $sha1));
    if ($describe =~ /^(.+?)-([0-9]+)-g/) {
      $distance = "$2 past $1";
    }
    else {
      $distance = "tagged: $describe";
    }

    $sha1 . $msg . $distance;
  }e;

  print;
}

close STDOUT or warn "$0: close: $!";

Muestra de salida:

$ git logtagdist * 9bea2b5 - Git 1.7.11-rc3 - etiquetado: v1.7.11-rc3 * 3a2c135 - Merge git://github.com/git-l10n/git-po - 17 pasado v1.7.11-rc2 |\ | * 3482b14 - Combinar git://github.com/ralfth/git-po-de - 5 anteriores v1.7.11-rc2 | |\ | | * d7f22ed - l10n: de.po: traducir 27 mensajes nuevos - 3 anteriores v1.7.11-rc2 | * | 6cb4571 - l10n: Actualizar po/vi.po ​​a v1.7.11.rc2.2.gb694fbb - 3 anteriores a v1.7.11-rc2 | |/ | * b694fbb - l10n: zh_CN.po: traducir 27 mensajes nuevos - 2 anteriores v1.7.11-rc2 | * 7256fd7 - l10n: Actualizar git.pot (27 mensajes nuevos, 1 eliminado) - 1 anterior v1.7.11-rc2 * | 73a6e3c - Combinar rama 'mm/api-credentials-doc' - 11 anterior a v1.7.11-rc2

Respondido el 12 de junio de 12 a las 19:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.