米肉是什么| 尿结石有什么症状| 大拇指旁边的手指叫什么| 雌激素分泌过多是什么原因引起的| 结婚下雨有什么说法| 男人为什么会得尿结石| 八字不合是什么生肖| 桦树茸什么功效| ca125是什么| 内膜薄是什么原因| 阴唇发黑是什么原因| 人死了是什么感觉| 如果是什么意思| 男士阴囊湿疹用什么药膏| 白眼球发黄是什么原因| 奡是什么意思| 左侧肋骨下方疼痛是什么原因| 螯合是什么意思| lbl是什么意思| 什么样的人容易中风| 女性长期便秘挂什么科| 什么月| 血栓是什么症状| lee属于什么档次| 威士忌是什么酒| 脑子里嗡嗡响是什么原因| 心是什么结构| 心包积液是什么意思| 文才是什么意思| 卵巢囊肿术后吃什么食物好| 虫加合念什么| 粑粑黑色是什么原因| ak是什么意思| 什么深似海| 好老公的标准是什么| 左侧肋骨下面是什么器官| 狗狗肠胃不好吃什么药最好| 中国的母亲河是什么河| 梦见男人是什么意思| 骞是什么意思| 小青柑属于什么茶| 看空是什么意思| 鸡犬不宁是什么意思| 氪金什么意思| 层峦叠翠的意思是什么| 小鱼爱吃什么| 早上起床头晕是什么原因| pvd是什么材料| 什么牌子的空调好| 大禹姓什么| 黄骨鱼是什么鱼| 晚上睡觉小腿抽筋是什么原因| 五行缺金有什么影响| 爱生闷气的人容易得什么病| 洗衣机不排水是什么原因| 不什么| 胃不好吃什么好| 司令员是什么军衔| 床单什么颜色有助于睡眠| 1893年属什么生肖| 主动脉钙化是什么意思| 台湾是什么民族| 孕妇dha什么时候吃| 舌头烂了是什么原因| 跳什么舞减肥最快| 梦见自己手机丢了是什么意思| 伤口不结痂是什么原因| 心脏上有个小洞是什么病| 脚底有痣代表什么意思| 发物有什么| 拔萝卜什么意思| 亚甲蓝注射起什么作用| 什么是半衰期| 什么星座最渣| 天伦之乐什么意思| 小肠疝气挂什么科| wuli是什么意思| 葛根主治什么病| 搬家当天有什么讲究| 废电池乱丢对人体可能造成什么中毒| 头发掉的严重是什么原因| 米线是用什么做的| 吃什么提高免疫力| 痉挛吃什么药效果好| 什么东西有助于睡眠| 芭蕉和香蕉有什么区别| 宋威龙什么星座| 手指关节痛吃什么药好| 今年农历是什么年| 碉堡是什么意思啊| 油性皮肤适合用什么牌子的护肤品| 诊刮是什么手术| 打车费计入什么科目| 便溏吃什么药| 合胞病毒吃什么药| 婆婆是什么意思| 感性是什么意思| 1226是什么星座| 头晕呕吐是什么原因| 混合痔是什么| 涤塔夫是什么面料| 煽是什么意思| 什么水不能喝| 叶公好龙是什么故事| 强五行属什么| 爸爸的姐姐叫什么| 7月份是什么季节| 骨质密度不均匀是什么意思| 抠鼻表情什么意思| 什么叫继发性高血压| 未加一笔是什么字| 六月十七是什么星座| 载脂蛋白b高是什么原因| 德艺双馨什么意思| 老被蚊子咬是什么原因| 蝙蝠是什么类动物| 什么的故事| 美人鱼2什么时候上映| 三月初九是什么星座| 小腹坠胀是什么原因| 金牛座的幸运色是什么| 百依百顺是什么生肖| 妈妈的爷爷叫什么| 五月三十一号是什么星座| 95棉5氨纶是什么面料| 每个月月经都提前是什么原因| 翟读什么| 可遇不可求是什么意思| 右耳朵发烫是什么征兆| 细菌性阴道炎吃什么药好| 口臭吃什么好| 梦见掉粪坑里了是什么意思| 扁头适合什么发型| 肝内低密度灶什么意思| 自采暖是什么意思| 热能是什么| 多头是什么意思| 心脏难受是什么原因| 骨化性肌炎是什么病| 二百五是什么意思| 敏感水体是什么意思| 补办港澳通行证需要什么材料| 胃寒吃什么食物好| 肝衰竭是什么原因引起的| tc是什么意思| 鬼一般找什么人压床| 孩子干咳吃什么药效果好| 女性吃大肠有什么好处| 什么属于轻微糖尿病| 死亡是什么感觉| 木星是什么颜色| 补肾吃什么| 什么是非遗| 急性寻麻疹用什么药| 怀孕初期流产有什么症状| 兰花用什么肥料最好| 肝寒吃什么中成药| 77年五行属什么| 鼻息肉是什么症状| 什么是药品| 香赞是什么意思| 正局级是什么级别| 转氨酶高是什么意思| 黔鱼是什么鱼| 马齿苋别名叫什么| 鸟飞进家里是什么预兆| 最毒妇人心是什么意思| 小孩智力发育迟缓挂什么科| 四爱是什么意思| 长期便秘是什么原因引起的| spi是什么| 咳白色泡沫痰吃什么药| 山根是什么| 颈动脉斑块吃什么药效果最好| 什么叫静脉曲张| 招魂是什么意思| 自怨自艾什么意思| 曹操是什么生肖| 嘴巴很臭是什么原因引起的| 黄体是什么| 寒号鸟是什么动物| 二月一号是什么星座| bmi指数是什么| 貌合神离是什么意思| 压床娃娃有什么讲究吗| blingbling什么意思| 经期洗澡有什么影响| 总胆红素偏高是什么病| 枕大池增大什么意思| 香蕉对身体有什么好处| 什么什么各异| 失态是什么意思| 十八反是什么意思| 眼压高用什么药| 五花八门是什么生肖| 口舌痣是什么意思| 之一的意思是什么| 叶酸在什么食物里最多| 晞是什么意思| 零和博弈是什么意思| 教育的目的是什么| 什么是带状疱疹| 颈椎病头晕吃什么药好| 泪崩是什么意思| 韩国买什么东西划算| 斑鸠吃什么食物| 邪祟是什么意思| prf是什么意思| 女人后脑勺出汗多是什么原因| 狼烟是什么意思| 脾虚便秘吃什么中成药| 蛋白酶是什么东西| 阴虚火旺有什么症状| 血红蛋白偏低的原因和危害是什么| 孕妇多吃什么水果比较好| 头发掉得厉害是什么原因| 临幸是什么意思| 舒化奶适合什么人喝| 真言是什么意思| 存款到100万算什么阶层| 行政许可是什么意思| 七个小矮人分别叫什么| 吃姜对身体有什么好处| 窦性心动过缓是什么意思| 什么的道理| 肾积水吃什么药| 县常委什么级别| bpd是胎儿的什么| 三七花泡水喝有什么功效| 开心果为什么叫开心果| 嘴巴里发苦是什么原因| 蚂蝗吃什么| 双非是什么| 光合作用是什么| 有什么中药可以壮阳| 4月18日什么星座| 一什么不| 抑郁什么意思| 女性长胡子是什么原因| 舌根苔白厚腻是什么原因| 唇炎属于什么科| ga什么意思| 四川大学校长什么级别| 风采是什么意思| rr是什么牌子| 吃什么补充膝盖润滑液| 梦到别人给钱是什么意思| 白玉菩提是什么材质| 甲减的原因是什么引起的| 金童玉女是什么意思| 查hpv挂什么科| 吃什么通便效果最好最快| 择期手术是什么意思| 摸底是什么意思| 乙肝恢复期是什么意思| 公诉是什么意思| pr间期延长是什么意思| 头痛看什么科| 耳垂有折痕是什么原因| 因人而异是什么意思| 智齿长什么样子| 碳素厂是做什么的| 金庸原名叫什么| hg是什么意思| 百度

为世界杯赛场腾地 俄爆破世界最高废弃电视塔

百度 河南省新县卡房乡何山村党支部原书记吴成福,是当地群众眼中不折不扣的“一霸手”,侵占了不少村民的扶贫款。

We have read/write access to the Git repository available for maintainers and significant developers.

Our web pages are managed via git.


Contents

  1. Authenticated access
  2. Setting up your local Git tree
  3. Write access policies
  4. Testing changes
  5. Checking in a change
  6. Creating and using branches
  7. Personal and Vendor branches
  8. Tips&Tricks around your account

Authenticated access

We provide authenticated access via the SSH protocol. This needs to be sponsored by an existing maintainer (someone with "write after approval" is not sufficient).

If you already have an account on sourceware.org / gcc.gnu.org, ask admin-requests@sourceware.org to add access to the GCC repository. Include the name of your sponsor and CC: them. Otherwise use this form, again specifying your sponsor.

We will then provision you and inform you by mail. At this point, check out a tree using the instructions below and add yourself to the MAINTAINERS file. Note: Your first and last names must be exactly the same between your account on gcc.gnu.org and the MAINTAINERS file. Place your name in the correct section following the conventions specified in the file (e.g. "Write After Approval" is "last name alphabetical order"). If you do not have an FSF copyright assignment on file, also add yourself to the DCO section in the file.

Then produce a diff to that file and circulate it to the gcc-patches list, whilst also checking in your change to test write access (approval from the mailing list is not needed in this one case). For all other changes, please be sure to follow the write access policies below.


Setting up your local Git tree

Check out the GCC sources by issuing the command:

git clone git+ssh://username@gcc.gnu.org/git/gcc.git gcc

where username is your user name at gcc.gnu.org.

It is also possible to convert an existing Git tree to use SSH by using git remote:

git remote set-url origin git+ssh://username@gcc.gnu.org/git/gcc.git

To avoid the nuisance of having to supply your passphrase for each operation, you may want to use ssh-agent(1) and ssh-add(1).

To avoid messages about (lack of) X11 forwarding, put in your $HOME/.ssh/config an entry like:

Host gcc.gnu.org
  ForwardX11 no

Git needs to know your name and email address. If you have not already configured those in $HOME/.gitconfig, do:

git config --global user.name "Your Name"
git config --global user.email "Your Email Address"

If you wish to use a different name or email address for GCC commits from that in $HOME/.gitconfig, you can configure that in an individual Git tree using similar invocations without --global.


Write access policies

The GCC project grants developers various levels of write access to and review authority over the GCC master sources. We have not put any technical enforcement in place, rather we rely on everyone to follow the appropriate policies.

Global reviewers.

A limited number of developers have global review permission and can approve other people's changes to any part of the compiler.

Localized write permission.

This is for people who have primary responsibility for ports, front ends, or other specific aspects of the compiler. These folks are allowed to make changes to areas they maintain and related documentation, web pages, and test cases (and target conditionals) without approval from anyone else, and approve other people's changes in those areas. They must get approval for changes elsewhere in the compiler.

Maintainers of a port maintain the relevant files in gcc/config, documentation, web pages, and test cases and aspects of these relevant to that port. Port maintainers do not have approval rights beyond this.

Localized review permission.

This is similar to localized write permission, except that reviewers required approval for their own changes.

Write after approval.

This is folks that make regular contributions, but do not fall into one of the previous categories. People with write after approval need to submit their patches to the list; once the patches have been approved by the appropriate maintainers the patches may be checked in. The steering committee or a well-established GCC maintainer (including reviewers) can approve for write access any person with GNU copyright assignment or DCO certification in place and known to submit good patches.

The list of folks with write access to the repository can be found in the MAINTAINERS file in the GCC distribution.

When you have checked in a patch exactly as it has been approved, you do not need to tell that to people -- including the approver. People interested in when a particular patch is committed can check Git or the gcc-cvs list.

Free for all

The following changes can be made by everyone with write access:

Obvious fixes can be committed without prior approval. Just check in the fix and copy it to gcc-patches. A good test to determine whether a fix is obvious: will the person who objects to my work the most be able to find a fault with my fix? If the fix is later found to be faulty, it can always be rolled back. We don't want to get overly restrictive about checkin policies.

Similarly, no outside approval is needed to revert a patch that you checked in.

Importing files maintained outside the tree from their official versions.

Creating and using a branch for development, including outside the parts of the compiler one maintains, provided that changes on the branch have copyright assignments or DCO certification. Merging such developments back to the mainline still needs approval in the usual way.


Testing changes

All changes must be tested according to the instructions for testing patches before they are checked in. If you wrote the patch yourself, you should test it yourself, unless there is a reason why someone else must do it for you (for instance, if you are fixing a problem on a system you do not have access to). If you are checking in a patch for someone else, you only need to test it if they did not.

You must test exactly the change you intend to check in; it is not good enough to have tested an earlier variant. (Unless the only changes from the earlier variant are formatting and comment changes; if there are any changes to the code itself you should re-bootstrap.) It is a good idea to re-test patches which were submitted a long time ago before applying them, even if nothing appears to have changed.

When you post your change to gcc-patches, state the canonical name(s) of the platform(s) you used for testing.

These rules are designed to ensure that checked-in code does not contain bugs that prevent other people from continuing to get their work done. There will always be bugs, but these rules help to minimize the amount of time where the tree does not build at all. Repeated failure to adhere to these rules could result in the revocation of check-in privileges by the Steering Committee.


Checking in a change

The following is meant to provide a very quick overview of how to check in a change. It is not meant to be a replacement for the Git documentation but instead a supplement. The Git documentation is available both as part of the Git source distribution, as well as on the Git website.

In all the commands listed below, you can give an explicit list of filenames to the git command. We recommend you list files explicitly when performing checkins to avoid accidental checkins of local code.

We prefer that each checkin be of a complete, single logical change, which may affect multiple files. The log message for that checkin should be a summary line (often the subject line of the email) followed by a blank line, then any discussion of the patch, and then the complete ChangeLog entry for the change. This makes it easier to correlate changes across files, and minimizes the time the repository is inconsistent. If you have several unrelated changes, you should check them in separately.

  1. Sync your sources with the master repository via "git pull" before attempting a checkin; this will save you a little time if someone else has modified the source tree since the last time you synced your sources.
  2. Apply the patch to your local tree. On master and release branches, ChangeLog entries will be automatically added to the corresponding ChangeLog files based on the git commit message once a day. See the documentation of ChangeLog format.
  3. Make sure to rebuild any generated files affected by the patch and commit them with the files explicitly modified.
  4. If the patch adds any new files, such as testcases, use git add to make Git aware of them.
  5. We recommend using "git diff HEAD" after applying a patch to a local tree. Review the output to make sure that only the changes you want will be checked in. Also see if the copyright dates need to be updated.
  6. Use "git commit" to check in the patch; either name the files to commit explicitly on the command line, or use git commit -a to commit all modified files in the source tree (it is still necessary to use git add first for any new files). If committing a patch for someone else, use --author "Author Name <Author@Email.Address>" to credit the patch to its author. You can enter the log message via the "-m" argument to commit, or wait for the editor window to appear and enter the log message in the editor window. If you use git commit without -a, and without naming files explicitly, it will only commit files explicitly added with git add, and will ignore any changes to those files made after you called git add for them.
  7. After exiting the editor, Git will check in your changes locally. When your prompt returns the local checkin is finished, but you still need to push the changes to the shared repository; do git push. A message will be sent to the gcc-cvs mailing list indicating that a change was made. If git push gives an error because someone else has pushed their own changes to the same branch, do git pull --rebase before trying git push again. A typical error in this situation looks like:
    To git+ssh://gcc.gnu.org/git/gcc.git
     ! [rejected]                master -> master (fetch first)
    error: failed to push some refs to 'git+ssh://gcc.gnu.org/git/gcc.git'
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

Creating and using branches

Git makes it very easy and cheap to create local branches for working on separate changes. To switch to a new local branch starting from your current HEAD, do

git checkout -b $BRANCH
If the branch is based on GCC master, you can set it up to rebase automatically with
git branch -u origin/master
git config branch.$BRANCH.rebase true

To share a long-lived development branch publicly for collaboration with other developers, you can use git push as follows:

git push origin $BRANCH:devel/$BRANCH

Please document such branches at the list of development branches.

Shared development branches should not rebase; instead, merge master in by hand occasionally as needed with a normal git merge master. But DO NOT then simply merge the branch back onto master; see below.


Merging and Rebasing

Every commit in the history of GCC master must follow the testing guidelines above; when a development branch is ready to move into master, do not do a simple git merge and push that onto master. Instead, invoke merge with --squash:

git merge --squash $BRANCH

This readies a single normal commit with the effect of the merge. If the merge can logically be divided into a series of commits that each pass testing, you can use git tools like git reset -p to break up the changes accordingly. It may be easier to cherry-pick some smaller changes onto master before doing the merge --squash.

For personal development branches that are already rebased on master you don't need to merge --squash squash, but still need to make sure the commits on the branch satisfy the above rules for commits.


Personal and vendor branches

The GCC git repository is used by many people and the branch and tag namespace would become very polluted if all branches lived at the top-level naming space. To help minimise the amount of data that needs to be fetched the git repository on gcc.gnu.org supports having personal and vendor spaces that developers use to share their work. These are not pulled by default, but simple configuration steps can give access to them.

Personal and vendor spaces are controlled by the individual user or vendor. Do not push changes to somebody else's space without their express permission. Rather than pushing to somebody else's branch, consider pushing to your own personal branch and having collaborators pull from there.

Scripts exist in the contrib directory to help manage these spaces.

contrib/gcc-git-customization.sh

This script will help set up your personal area. It will also define some aliases that might be useful when developing GCC. The script will first ask a number of questions:

If you have personal branches pushed to the gcc repository you can fetch updates from your personal space by running git fetch users/me (or whatever personal prefix you've chosen). You can also push an already existing branch using git push users/me me/branch. Beware that if you have more than one personal branch set up locally, simply typing git push users/me will potentially push all personal branches based on that remote.

Use --dry-run to check that what will be pushed is what you intend.

The script contrib/git-add-user-branch.sh can be used to create a new personal branch which can be pushed and pulled from the users/me remote. The script also defines a few useful aliases that can be used with the repository:

The final customization that the script makes is to add a diff rule so that running git diff on a machine description file (a file with the suffix .md) will annotate the diff hunk headers with the name of the pattern being modified (in much the same way as C function names are used).

contrib/git-fetch-vendor.sh

Vendor spaces are controlled by the named vendor. Do not push changes to that space without their express permission.

This script will set up a new 'remote' that can be used to access the area used by a named vendor. You need to run contrib/gcc-git-customization.sh before you can use this script.

The script requires one argument, the name of the vendor, and takes one option, --enable-push, to enable pushes to be made to the space. If invoked with no arguments the script will build a list of existing vendors from the server.

Once the script has been run, a new 'remote' will be configured with the name vendors/<vendor>. You can use this to fetch updates to that vendor's branches.

To check out an existing vendor branch, you can use:

    git checkout -b <vendor>/<topic> remotes/vendors/<vendor>/<topic>

This will create a tracking branch that can be updated with normal git operations, such as git pull.

If you have set up push access, then the branch can similarly be pushed to using:

    git push vendors/<vendor> <vendor>/<topic>

The script can be re-run with, or without --enable-push to enable, or disable push operations.

contrib/git-add-vendor-branch.sh

Before this script can be used contrib/git-fetch-vendor.sh should be run to set up the vendor-specific workspace. This applies even if the named vendor space does not yet exist on the server.

This script can be used to simplify the task of creating an initial vendor branch. The script takes two arguments, the name of the branch to create (including the vendor name) and the start point. For example, to create a test branch under the vendor megacorp run and starting from the most recent commit on master:

    contrib/git-add-vendor-branch.sh  <vendor>/<topic> master
This will create the branch both locally and on the server, but will not check the branch out locally. You can do that afterwards with git checkout or git worktree.

contrib/git-add-user-branch.sh

before this script can be used, your personal space access should be set up by running contrib/gcc-git-customization.sh.

The script takes two arguments, the name of the new branch to create and a ref to create it from. The personal prefix for the new branch is optional and will be automatically added if omitted. For example, if your personal prefix is the default (me), then running:

    contrib/git-add-user-branch.sh topic master

will set up a branch called topic on the server and a local branch called me/topic that tracks it. The branch can then be pushed using:

    git push users/me me/topic

Tips&Tricks around your account

Your gcc.gnu.org account also receives e-mail (and is what you use for Bugzilla). If you ever need to change the address e-mail to username@gcc.gnu.org is forwarded to, you can easily do so using

ssh username@gcc.gnu.org email mynewaddress@example.com

Similarly if you want to add a new SSH key to your account:

ssh username@gcc.gnu.org appendkey < KEYFILE

Or replace all your SSH keys:

ssh username@gcc.gnu.org replacekey < KEYFILE
摘胆对身体有什么影响 锁精环是什么 夜来香是什么花 闹肚子吃什么药 飞蚊症是什么引起的
淋巴细胞百分比低是什么意思 寒是什么意思 蜂蜜不能和什么食物一起吃 荨麻疹是什么原因 为什么痣上面会长毛
1946年属什么生肖 代金券是什么意思 母亲节做什么 吃完避孕药不能吃什么东西 鱼缸为什么不能送人
腊月初八是什么日子 婴儿大便隐血阳性是什么意思 啃老是什么意思 肚子突然疼是什么原因 六味地黄丸什么牌子好
晚上六点半是什么时辰bjcbxg.com 朝鲜韩国什么时候分开的hcv9jop2ns3r.cn 亚硝酸钠是什么gangsutong.com 黑下打信是什么任务hcv8jop0ns7r.cn 羊肉炖什么补肾壮阳qingzhougame.com
木石是什么字hcv8jop2ns1r.cn 前列腺是什么症状hcv9jop3ns0r.cn 小孩脸上有白斑是什么原因hcv8jop4ns2r.cn 什么是高危性行为hcv8jop0ns2r.cn 单飞是什么意思hcv7jop9ns6r.cn
八八年属什么hcv8jop7ns5r.cn 丢钱是什么预兆hcv9jop2ns3r.cn 梦见腿断了是什么意思hcv9jop6ns8r.cn 12月15日是什么星座hcv7jop5ns5r.cn 左边偏头痛什么原因hcv8jop7ns5r.cn
阳痿早泄是什么意思hcv9jop0ns7r.cn 40min是什么意思hcv8jop3ns0r.cn 吃完饭想吐是什么原因hanqikai.com 腹泻吃什么药见效最快baiqunet.com 职业测试你适合什么工作hcv8jop3ns7r.cn
百度