Для этого вы можете использовать опцию -S для git log :
git log -S'bar' -- foo.rb
Этот поиск текста bar
в файле foo.rb
[1112 ] если вы хотите выполнить поиск по всем разным ссылкам, которые вы можете выполнить: git log -G'bar' -- foo.rb
Когда -S или -G найдет изменение, покажите все изменения в этом наборе изменений, а не только файлы, которые содержат изменить.
blockquote>ПРИМЕЧАНИЕ : Этот поиск чувствителен к регистру .
Если вы добавите
-i
, вы можете искать без учета регистра. Выполнение полной команды:git log -i -S'bar' -- foo.rb
ПРИМЕЧАНИЕ 2 : поиск выполняется только в вашей текущей ветви.
Если вы хотите выполнить поиск по всем ветвям, вам следует добавить флаг
--all
Притвориться, будто все ссылки в refs / вместе с HEAD перечислены в командной строке как.
blockquote>Полная команда будет такой:
git log --all -i -S'bar' -- foo.rb
Вывод будет примерно таким:
$ git log --all -i -S'bar' -- foo.rb commit 53106e9cd319a2d8f960a3bbf2731acd0699a54f (feature/x) Author: name
Date: Fri Jan 18 13:59:32 2019 +0100 Added word
Определенный Win32, могли константы быть от всех включенных единиц.
я сделал бы двоичный поиск: продолжайте рвать половину единицы, пока она не компилирует, затем включите материал назад.
Да это сосет, но это - одна из функций попытки отладить внутренние ошибки компилятора BorlandCodeGaembarcadero.
Прежде, чем требовать это - ошибка компилятора или обращение за помощью, я серьезно попытался бы организовать и убрать мой код.
Я создал бы выделенные стандартные программы, которые назовут для каждой части в FormCreate вместо этой крупной вашей сумки. - SQLParseInit
- cppParseInit
- pasParseInit
- CodeOutPutInit <-+++++ много констант там
И посмотрите, вызывает ли 1 в особенности проблемы.
И это было бы не плохо, чтобы создать минимальный случай, с как можно меньшим количеством сторонних зависимостей, позволить другим воспроизводить его и видеть, является ли это действительно ошибка или просто плохой код.
И также удалите те $IFDEF... Просто предоставьте фактический код, который вызывает это поведение без всей помехи.
Добавленный: Поскольку это работает в D2007, но не в D2009, я также проверил бы это дважды все компоненты библиотек/третьей стороны, которые Вы включаете в свой код, правильно перемещены в D2009. (выполните развертку этого cppParser),
Я нашел метод (FormCreate), который является проблемой и осуществлял рефакторинг, но неважно как маленький я делаю блоки, компилятор все еще имеет проблему, если я не удаляю часть кода.
François благодарит, но я действительно осуществлял рефакторинг код и все еще получал ошибку. Если это создало с D2007 и не делает с D2009, который кажется подозрительным мне.
procedure TOutputCodeForm.FormCreate(Sender: TObject);
begin
if ( IsWindowsVista() ) then
begin
SetVistaFonts( self );
end;
SetupParser( SQLParser, gstrSQLParser, '' );
// unresolved jmu - have to comment this out for now or delphi will complain
// that there are too many literals in this file. Seems like a delphi bug
// since this builds in older versions, and I've already refactored it.
//SetupParser( cppParser, gstrCPPParser, '' );
SetupParser( pasParser, gstrPasParser, ExtractFilePath( Application.ExeName ) + 'pasScript.txt' );
SetupCodeOutput( poCodeOutput );
SQLParser.AttachEditor( poCodeOutput );
cppParser.AttachEditor( poCodeOutput );
pasParser.AttachEditor( poCodeOutput );
poCodeOutput.Lines.AddStrings( poCode );
if ( CodeType = ctCPP ) then
poCodeOutput.ActiveParser := 2
else if ( CodeType = ctPascal ) then
poCodeOutput.ActiveParser := 1
else
poCodeOutput.ActiveParser := 3;
MainForm.AdjustFormSize( self, 0.95, 0.75 );
end;
Я посмотрел бы на строку "poCodeOutput. Опции: = [xx....]" Похож на слишком много опций в наборе на одной строке кода.
Проводите ту одну строку и посмотрите, получаете ли Вы ошибку.
От справки:
Один или несколько Ваших процедур содержит столько выражений строковой константы, что они превышают предел внутренней памяти компилятора. Это может произойти в коде, который автоматически сгенерирован. Для фиксации этого можно сократить процедуры или объявить постоянные идентификаторы вместо того, чтобы использовать столько литералов в коде.
Поэтому, возможно, попытайтесь поместить некоторые из тех строк в consts или других переменных (не локальный).
Учитывая проблему только происходит в одном из Ваших компиляторов Delphi / установки, я задаюсь вопросом, если это связано с проблемой установки компонента. Вы попытались просто создать каноническую форму, которая использует статические версии всех компонентов, которые Вы создаете динамично? (TSyntaxMemoParser, и т.д.).
(Вы выполняете те версии Delphi на отдельных машинах / btw VM? Может сохранить МНОГО стычки, если Вы используете много сторонних компонентов и больше чем одну версию Delphi),