Making Git retain different section content between branches

后端 未结 4 456
难免孤独
难免孤独 2020-11-29 13:54

I\'m developing a Userscript that my employers have asked me to begin to manage via Git.

Right now, I have a stable file and a beta file, so that everyone in the org

4条回答
  •  Happy的楠姐
    2020-11-29 14:29

    All your changes should be merged except changes to those values, which makes them not like the others, not changes to intrinsic content but deployment-specific changes. Those might be best applied in the post-checkout hook. Here's a sample, a per-branch include processor

    cat <<\EOF >.git/hooks/post-checkout
    #!/bin/sh
    if branch=`git symbolic-ref HEAD --short -q`; then
        for file in `git ls-files -cix*.@branch`; do
            echo "* making ${file%.@branch} from $file with branch-specific includes"
            echo '/^@include-branch-specific ([a-z/]*)$/ { s//cat \1.'$branch'/e }' \
            | sed -rf- $file >${file%.@branch}
        done
    fi
    EOF
    chmod +x .git/hooks/post-checkout
    
    # testing
    git checkout beta
    
    cat  <<\EOF >config.@branch
    // ==UserScript==
    @include-branch-specific config
    // ==/UserScript==
    EOF
    
    echo >config.stable '// @downloadURL  --  StableURL File Location'
    echo >config.beta   '// @downloadURL  --  BetaURL File Location'
    
    git add config.*
    # git rm --cached config
    git commit -m'setting up per-branch configs'
    git checkout
    
    git checkout stable
    git cherry-pick beta
    git checkout
    

提交回复
热议问题