Добавьте параметр -f
(или --showname
) , чтобы всегда видел имя файла в git blame
.
> git blame --show-name -e ./lib/Transforms/Hello/Hello.cpp | head -3
180e568a7058 lib/Transforms/Hello/Hello.cpp ( 2002-08-08 20:10:38 +0000 1) //===- Hello.cpp - Example code from "Writing an LLVM Pass" ---------------===//
fd93908ae8b9 lib/Transforms/Hello/Hello.cpp ( 2005-04-21 23:48:37 +0000 2) //
b576c94c15af lib/Transforms/Hello/Hello.cpp ( 2003-10-20 19:43:21 +0000 3) // The LLVM Compiler Infrastructure
Как уже упоминалось для этой опции:
По умолчанию имя файла отображается, если есть какая-либо строка из файла с другим именем из-за обнаружения переименования.
blockquote>Это должно было иметь место для
Instruction.h
, а не дляHello.cpp
.
jQuery.fn.identify = function(prefix) {
var i = 0;
return this.each(function() {
if(this.id) return;
do {
i++;
var id = prefix + '_' + i;
} while($('#' + id).length > 0);
$(this).attr('id', id);
});
};
$('span').identify('test');
Протестированный это на:
<span id='test_2'></span>
<span>test1</span>
<span>test2</span>
<span>test3</span>
Превращенный это к:
<span id="test_2"></span>
<span id="test_1">test1</span>
<span id="test_3">test2</span>
<span id="test_4">test3</span>
Не то, чтобы я знаю о, но Вы могли сделать это сами путем добавления id
атрибут и предоставление GUID.
Добавить атрибут:
$(foo).attr( "id", createGuid() );
Для createGuid()
реализация, посмотрите этот вопрос.
Обратите внимание, что Вы могли легко превратить это в плагин jQuery так, чтобы эта функция (Вы могли даже назвать ее identify()
) доступно на любом $-
выражение.
На основе решения Паоло:
jQuery.fn.identify = function(prefix) {
var i = 0;
return this.each(function() {
if($(this).attr('id')) return;
do {
i++;
var id = prefix + '_' + i;
} while($('#' + id).length > 0);
$(this).attr('id', id);
});
};
$('span').identify('test');
Небольшое изменение, которое постарается не уже рассказывать используемые идентификаторы.
Возможно, попробуйте
$("#foo span").each(function(){
$(this).attr("id", "prefix_" + $(this).parent().index($(this)));
});
Я бы немного изменил данную функцию и сделал это:
jQuery.fn.identify = function(prefix) {
var i = 0;
return this.each(function() {
if($(this).attr('id')) return;
do {
i++;
var id = prefix + '_' + i;
} while(document.getElementById(id) != null);
$(this).attr('id', id);
});
};
ID могут содержать специальные символы, которые требуют экранирования для правильной работы с CSS jQuery селектор двигателя - вроде ".". Поэтому вместо того, чтобы найти и избежать их, проще и быстрее заменить его методом документа.