1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
Expected refs for various operations in the git repository:
After "git ubuntu clone":
pkg remote
push refspec:
N/A (not present to prevent accidents)
fetch refspecs:
refs/heads/*:refs/remotes/pkg/*
refs/tags/*:refs/tags/pkg/*
# perhaps limit to supported series but makes refspec brittle
Without mirror mode (default):
my_lp_user remote # racb or nacc remote, etc - _my_ one is special, but documentation interpolation is a pain
push refspec:
N/A (none by default)
fetch refspec:
refs/heads/*:refs/remotes/my_lp_user/*
refs/tags/*:refs/tags/my_lp_user/*
With mirror mode (advanced only):
my_lp_user-mirror remote # racb-mirror or nacc-mirror remote, etc - _my_ one is special
push refspec: +refs/heads/*:refs/heads/* +refs/tags/*:refs/tags/*
fetch refspec: refs/heads/*:refs/heads/* refs/tags/*:refs/tags/*
Colleague remote:
push refspec:
N/A
fetch refspecs:
refs/heads/*:refs/remotes/colleague/*
refs/tags/*:refs/tags/colleague/*
During 'git ubuntu import':
git fetch (according to `git ubuntu clone` refspecs)
# do we want a flag to prevent the following?
delete refs/heads/importer/*
delete refs/tags/importer/*
copy refs/remotes/pkg/* to refs/heads/importer/{debian,ubuntu}/*
fetch refs/tags/* to refs/tags/importer/* # in case the local tags have been manipulated
Run actual import in refs/heads/importer/*
This creates/manages the following refs:
Distro-specific:
heads/importer/importer/debian/pristine-tar
heads/importer/importer/debian/dsc
heads/importer/importer/ubuntu/pristine-tar
heads/importer/importer/ubuntu/dsc
heads/importer/debian/<series> # unapplied
heads/importer/ubuntu/devel # unapplied
heads/importer/ubuntu/<series>-{devel,update,proposed,security} # unapplied
heads/importer/applied/debian/<series>
heads/importer/applied/ubuntu/devel
heads/importer/applied/ubuntu/<series>-{devel,updates,proposed,security}
Distro-general:
importer/tags/import/<version> # shared between Debian and Ubuntu
importer/tags/upload/<version> # shared between Debian and Ubuntu
importer/tags/orphan/<version> # shared between Debian and Ubuntu
Importer programmed to see only refs/tags/importer/*
Push refs/heads/importer/*:refs/heads/*
refs/tags/importer/*:refs/tags/*
"git ubuntu import" has hardcoded refspecs for push; no push refspecs
exist elsewhere ever to "official" remotes
|