11 октября 2023 13 октября 2023 Bash for read while git ls-files


Обычно я использую для обработки больлих списков следующую конструкцию
 

for x in $(git ls-files); do
du -sm "$x"
done

здесть создаётся локальная переменная в которой размещается результат операции find

Более оптимальная конструкция без использования локальной переменной через цикл while и read

git ls-files | while read x; 
do du -sm "$x"; 
done

 


28 сентября 2018 11 октября 2023 Python git


#!/usr/bin/env python
# $ID$ #
import sys
import subprocess


try:

    IIDD = "$I"+"D: {}  $".format(
        subprocess.check_output(['git', 'log', '-1', '--format=%ae / %an / %cd']).decode("utf-8")[:-1]
    )

    if IIDD:
        for line in sys.stdin:
            sys.stdout.write( line.replace("$I"+"D$", IIDD ) )

except:
    pass

А вот настройки git для работы с этим скриптом

файл .git/config


[filter "idder"]
    smudge = python iidd.py
    clean = perl -pe \"s/\\\\\\$ID[^\\\\\\$]*\\\\\\$/\\\\\\$ID\\\\\\$/\"

файл .gitattributes


*.js filter=idder
*.py filter=idder
*.css filter=idder
*.html filter=idder


15 января 2018 Linux Ubuntu git


Для того чтобы смержить два проекта потребуется git начиная с версии >=2.9. Такого нет в репозитариях стабильной версии Ubuntu 16.04. Для установки более новой версии необходимо сделать вот так:

sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git

вуаля:

ffsdmad@ffsdmad:~/Project$ git --version
git version 2.15.1