From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.1 Date: Thu, 26 Nov 2020 15:49:27 +0100 From: Alexey Gladkov To: "Vladimir D. Seleznev" Message-ID: <20201126144927.h36zzrisholvca3s@example.org> References: <20201126141636.2742206-1-vseleznv@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20201126141636.2742206-1-vseleznv@altlinux.org> Cc: devel@lists.altlinux.org, ldv@altlinux.org Subject: Re: [devel] [PATCH 1/3] Introduce nodiff directive for gear-rules X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Nov 2020 14:49:39 -0000 Archived-At: List-Archive: List-Post: On Thu, Nov 26, 2020 at 05:16:34PM +0300, Vladimir D. Seleznev wrote: > The directive specifies a glob pattern that define files that should be > excluded from diff generation. Мои комментарии относятся только к технической части. Относительно именования директив и нужности директивы вообще должен Дима высказаться. Лично мне не нравится, что опция для директивы diff сделана директивой. Это выглядит хаком. У вас аргумент nodiff не может иметь пробелы. В этом случае несложно сделать `diff: exclude=glob_pattern`. > Signed-off-by: Vladimir D. Seleznev > --- > gear | 24 ++++++++++++++++++------ > gear-rules.5.in | 19 +++++++++++++++++++ > gear-store-tags | 2 +- > 3 files changed, 38 insertions(+), 7 deletions(-) > > diff --git a/gear b/gear > index 6282c92..b4e8426 100755 > --- a/gear > +++ b/gear > @@ -402,13 +402,14 @@ write_git_diff() > { > local optional="$1" && shift > local cmd="$1" && shift > + local nodiff_patterns="$1" && shift > local old_tree="$1" && shift > local old_dir="$1" && shift > local new_tree="$1" && shift > local new_dir="$1" && shift > local name="${1##*/}" && shift > > - local old_id new_id > + local old_id new_id nodiff= > > old_id="$(traverse_tree "$old_tree" "$old_dir" "$optional")" || > { > @@ -422,8 +423,13 @@ write_git_diff() > exit 1 > } > > + for pattern in $nodiff_patterns; do > + [ -n "$pattern" ] ||continue В остальном коде после '||' всегда ставится пробел если за ним идёт другая команда. > + nodiff="$nodiff $(printf ":^%s" "$pattern")" subshell для подстановки $pattern c двумя символами выглядит странно. Наверно лучше написать: nodiff="$nodiff :^$pattern" -- Rgrds, legion