LINUX.ORG.RU

История изменений

Исправление mersinvald, (текущая версия) :

Все, вопрос решен.
Сделал так:

#!/bin/bash
gitbackup="git --git-dir=.git_backup --work-tree=./"

# Find all submodules recursively
SUBMODULES=$(find ./ -type d -name .git | xargs -n 1 dirname | grep -v Go | grep -v usr)

# Works as git submodule foreach, but can be used for non-git-submodule git trees
for module in $SUBMODULES; do
        echo "Bundling $module"
        pushd $module > /dev/null 2>&1
        git bundle create ../.$(basename $module).bundle --all > /dev/null 2>&1
        popd > /dev/null 2>&1
        $gitbackup add $module/../.$(basename $module).bundle
done

# Trying to commit changes
$gitbackup commit -m "$(date)" > /dev/null 2>&1

# Checking if there were changes
if [ $? -eq 0 ]; then
       	# If so, bundling everything
        echo "Created commit \"$(date)\" with updates"
        echo "Bundling whole backup tree to ./.backup.bundle"
        $gitbackup bundle create .backup.bundle -1 master > /dev/null 2>&1
else
    	echo "Nothing changed, nothing to update"
fi

UPD: надо бы, конечно, еще привинтить туда git hook, определяющий по mime что добавлять, а что нет, а то windcard'ами в gitignore как-то костыльно

Исправление mersinvald, :

Все, вопрос решен.
Сделал так:

#!/bin/bash
gitbackup="git --git-dir=.git_backup --work-tree=./"

# Find all submodules recursively
SUBMODULES=$(find ./ -type d -name .git | xargs -n 1 dirname | grep -v Go | grep -v usr)

# Works as git submodule foreach, but can be used for non-git-submodule git trees
for module in $SUBMODULES; do
        echo "Bundling $module"
        pushd $module > /dev/null 2>&1
        git bundle create ../.$(basename $module).bundle --all > /dev/null 2>&1
        popd > /dev/null 2>&1
        $gitbackup add $module/../.$(basename $module).bundle
done

# Trying to commit changes
$gitbackup commit -m "$(date)" > /dev/null 2>&1

# Checking if there were changes
if [ $? -eq 0 ]; then
       	# If so, bundling everything
        echo "Created commit \"$(date)\" with updates"
        echo "Bundling whole backup tree to ./.backup.bundle"
        $gitbackup bundle create .backup.bundle -1 master > /dev/null 2>&1
else
    	echo "Nothing changed, nothing to update"
fi


UPD: надо бы, конечно, еще привинтить туда git hook, определяющий по mime что добавлять, а что нет, а то windcard'ами в gitignore как-то костыльно

Исходная версия mersinvald, :

Все, вопрос решен.
Сделал так:

#!/bin/bash
gitbackup="git --git-dir=.git_backup --work-tree=./"

# Find all submodules recursively
SUBMODULES=$(find ./ -type d -name .git | xargs -n 1 dirname | grep -v Go | grep -v usr)

# Works as git submodule foreach, but can be used for non-git-submodule git trees
for module in $SUBMODULES; do
        echo "Bundling $module"
        pushd $module > /dev/null 2>&1
        git bundle create ../.$(basename $module).bundle --all > /dev/null 2>&1
        popd > /dev/null 2>&1
        $gitbackup add $module/../.$(basename $module).bundle
done

# Trying to commit changes
$gitbackup commit -m "$(date)" > /dev/null 2>&1

# Checking if there were changes
if [ $? -eq 0 ]; then
       	# If so, bundling everything
        echo "Created commit \"$(date)\" with updates"
        echo "Bundling whole backup tree to ./.backup.bundle"
        $gitbackup bundle create .backup.bundle -1 master > /dev/null 2>&1
else
    	echo "Nothing changed, nothing to update"
fi