Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:olh
helpers
_service:obs_scm:olh-kerncvs-clone_kerncvs_kern...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:olh-kerncvs-clone_kerncvs_kernel-source_bare.sh of Package helpers
#!/bin/bash set -e # Usage: # $0 <branch>: clone branch as is # $0 -m <branch>: clone branch as is, add remotes for the following branches: # branch_EMBARGO # branch-GA # branch-UPDATE # branch-LTSS # branch-LTSS_EMBARGO # branch-AZURE # branch-AZURE_EMBARGO # unmerged user branches # . /usr/share/helpers/bin/olh-kerncvs-env trap 'pwd' EXIT azure_branches=" SLE15-SP6 SLE15-SP5 SLE12-SP5 " email='ohering@suse.de' name='Olaf Hering' smtp='relay.suse.de' # git_repo=kernel-source git_origin=kerncvs repo_prefix=${git_origin} repo_base=${repo_prefix}.${git_repo} repo_mirror=${repo_base}.bare.mirror # do_clone= do_merge= branch= for var in ${!LANG*} ${!LC_*} do case "${!var}" in *.UTF-8) export ${var}="en_US.UTF-8" ;; *) ;; esac done # until test "$#" -eq 0 do case "$1" in -m) do_merge=do_merge ;; -c) do_clone=do_clone ;; *) test -z "${branch}" && branch="$1" test -n "${do_merge}" && break ;; esac shift done # pushd "${WORK_KERNEL}" if test -n "${do_clone}" then if test -d "${repo_mirror}" then echo "${_} exists already" exit 0 fi remotes=() case "$(hostname -f)" in *.devlab.pgu1.suse.com) remotes+=( "git://code-mirror/${git_repo}.git" ) ;; esac remotes+=( "https://github.com/SUSE/${git_repo}.git" ) remotes+=( "${kerncvs_git_user}@${kerncvs_git_srv}:/srv/git/${git_repo}.git" ) time git --no-pager clone --mirror "${remotes[0]}" "${repo_mirror}" pushd "$_" for remote in "${remotes[@]}" do git --no-pager remote set-url 'origin' "${remote}" git --no-pager fetch --tags --all done # fatal: options '--bare' and '--origin something' cannot be used together git --no-pager remote rename 'origin' "${git_origin}" exit 0 fi # if ! test -d "${repo_mirror}" then echo "${repo_mirror} does not exist yet." exit 1 fi # : branch ${branch} if test -z "${branch}" then echo "A branch name is required" exit 1 fi # git_config() { git config user.email "${email}" git config user.name "${name}" git config sendemail.from "${name} <${email}>" git config sendemail.envelopesender "${email}" git config sendemail.chainreplyto 'false' git config sendemail.ccover 'yes' git config sendemail.smtpencryption 'tls' git config sendemail.smtpdomain 'sender' git config sendemail.smtppass '' git config sendemail.smtpAuth '' git config sendemail.smtpserver "${smtp}" git config sendemail.smtpuser '' git config sendemail.confirm 'always' git config sendemail.assume8bitEncoding 'yes' git config sendemail.transferEncoding '8bit' git config merge.tool 'git-sort' git config mergetool.git-sort.cmd 'scripts/git_sort/merge_tool.py $LOCAL $BASE $REMOTE $MERGED' git config mergetool.git-sort.trustExitCode 'true' } # case "${branch}" in SLE15-SP6-AZURE) clone_branch='SLE15-SP6-AZURE';; SLE15-SP6) clone_branch='SLE15-SP6' ;; SLE15-SP5-AZURE) clone_branch='SLE15-SP5-AZURE';; SLE15-SP5) clone_branch='SLE15-SP5' ;; SLE15-SP4-LTSS) clone_branch='SLE15-SP4-LTSS' ;; SLE15-SP4) clone_branch='SLE15-SP4-LTSS' ;; SLE15-SP3-LTSS) clone_branch='SLE15-SP3-LTSS' ;; SLE15-SP3) clone_branch='SLE15-SP3-LTSS' ;; SLE15-SP2-LTSS) clone_branch='SLE15-SP2-LTSS' ;; SLE15-SP2) clone_branch='SLE15-SP2-LTSS' ;; SLE15-SP1-LTSS) clone_branch='SLE15-SP1-LTSS' ;; SLE15-SP1) clone_branch='SLE15-SP1-LTSS' ;; SLE15-LTSS) clone_branch='SLE15-LTSS' ;; SLE15) clone_branch='SLE15-LTSS' ;; SLE12-SP5-AZURE) clone_branch='SLE12-SP5-AZURE';; SLE12-SP5) clone_branch='SLE12-SP5' ;; SLE12-SP4-LTSS) clone_branch='SLE12-SP4-LTSS' ;; SLE12-SP4) clone_branch='SLE12-SP4-LTSS' ;; SLE12-SP3-TD) clone_branch='SLE12-SP3-TD' ;; SLE12-SP3-LTSS) clone_branch='SLE12-SP3-LTSS' ;; SLE12-SP3) clone_branch='SLE12-SP3-LTSS' ;; SLE12-SP2-LTSS) clone_branch='SLE12-SP2-LTSS' ;; SLE12-SP2) clone_branch='SLE12-SP2-LTSS' ;; SLE12-SP1-LTSS) clone_branch='SLE12-SP1-LTSS' ;; SLE12-SP1) clone_branch='SLE12-SP1-LTSS' ;; SLE11-SP4-LTSS) clone_branch='SLE11-SP4-LTSS' ;; SLE11-SP4) clone_branch='SLE11-SP4-LTSS' ;; linux-4.12) clone_branch='fixes/linux-4.12' ;; master) clone_branch='master' ;; packaging) clone_branch='packaging' ;; scripts) clone_branch='scripts' ;; *) echo "branch '${branch}' unknown by ${0##*/}" ; exit 1 ;; esac # repo=${repo_base}.${clone_branch//\//_} if test -e "${repo}" then echo keeping existing ${repo} else git \ clone \ --single-branch \ --no-tags \ --origin ${git_origin} \ --branch ${clone_branch} \ --reference ${repo_mirror} \ ${kerncvs_git_user}@${kerncvs_git_srv}:/srv/git/${git_repo}.git \ ${repo} pushd "${repo}" git_config scripts/install-git-hooks if test "${clone_branch}" != 'scripts' then for i in 'scripts' do git --no-pager \ config \ --add \ remote.${git_origin}.fetch \ "+refs/heads/${i}:refs/remotes/${git_origin}/${i}" done fi git fetch --all popd fi # if test -n "${do_merge}" then echo "branch ${branch}" merge_clone_branch= for i in ${azure_branches} do test "${i}" = "${branch}" || continue merge_clone_branch="${branch}-AZURE" done test -z "${merge_clone_branch}" && merge_clone_branch="${clone_branch}" candidates=() unmerged=() if pushd ${repo_mirror} then candidates=( `git --no-pager branch | xargs -n1 | grep -E "(^|/)${branch}(|-GA|-UPDATE|_EMBARGO|-LTSS|-LTSS_EMBARGO|-AZURE|-AZURE_EMBARGO)($|/)"` ) for candidate in ${candidates[@]} do if [[ "${candidate}" =~ ^${branch} ]] then unmerged+=("${candidate}") else if git --no-pager merge-base --is-ancestor "${candidate}" "${clone_branch}" then : "${candidate} already merged into ${clone_branch}" else unmerged+=("${candidate}") fi fi done popd fi echo "${#unmerged[@]} out of ${#candidates[@]} branches already merged into ${clone_branch}" : unmerged "${unmerged[@]}" repo=${repo_base}.${merge_clone_branch}.merge if test -e "${repo}" then echo keeping existing ${repo} else git \ clone \ --single-branch \ --origin ${git_origin} \ --branch ${merge_clone_branch} \ --reference ${repo_mirror} \ ${kerncvs_git_user}@${kerncvs_git_srv}:/srv/git/${git_repo}.git \ ${repo} if pushd "${repo}" then git_config scripts/install-git-hooks popd fi fi if pushd "${repo}" then for i in ${unmerged[@]} do git --no-pager \ config \ --add \ remote.${git_origin}.fetch \ "+refs/heads/${i}:refs/remotes/${git_origin}/${i}" done git fetch --all --prune popd fi fi
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor