灵魂只是从你的问题中引出的;) 试图避免在做事时损失太多的东西。
回答这些问题。
<>>? 如果是的话,交流相互矛盾变化的最佳方式是什么?
我知道,在这项工作相互融合(合并)之前,没有任何主流源控制软件就可能相互矛盾的工作发出执行良好的通知。 除了DRY和C. 结 论orbin 3月提到的关切分离之外,我认为,“日复一日”、“日报”、“承诺往往”和“晚餐”(见下文)是面包和utter。
提前交割是有限度的。 免税和依赖你的双轨制/任务安排制度,只应当承诺完成全部的工作。
确实,在你遇到无法解决的源性冲突时,要求帮助的社会技能并不多。
<>I'm Planning tostaling a C. 结 论MS as well.<>2.。 因此,我的团队可以撰写或告知,他们有分支机构等,但我不知道是否有其他工具追踪我们项目的历史健康和丑闻。
This sounds like a pretty "distributed" approach. Not as in location but as in responsibility. You are creating software products and do some sort of release occasionaly do you? Therefore responsibility should increase and focus the further "downstream" it gets. The only branches the whole team should be familar with are the release branches for fixing things (no features there) and your mainline (trunk). All other things, feature-branches, integration branches, "backup" branches, private branches etc. are to be managed by those requesting or enforcing them. Why should you or colleague "A" care that colleague "B" branched the mainline to develop his experimental feature in peace?
C. 结 论olleague "B" by developing something groundbreaking, has the responsibility for his branch and to keep it C. 结 论OMPATIBLE with the mainline. Either constantly by merging changes from the mainline to his branch or before reintegration of his new code. Research integration branches if you want to know more.
工具。 在特别志愿人员(Jira, trac, mantis, Redmine )内完全融合的任何助推器都应从事这项工作。 但我不理解这个问题的这一部分与你的冲突问题有何关系。
3.。 即使我的公司采用统一管理办法,那么,我能如何说服或强制向高级方案人员进行社会交流,而不打破无形的“高级”等级?。
我认为,你高估了在油井工作流程中所需的通信量。 你提到的情况表明,你公司缺乏工作流程,你在根本上与冲突作斗争(见1和2),在你看来,这增加了沟通的必要,可能会造成不必要的高间接费用。 可能仍然值得考虑的是,有一套C. 结 论MS或某种“I work here”旗帜化系统。
You indicated that some senior developers do not like to talk or socialize so much even in conflict cases where better they should. Don t let them get away with this by doing merges for them. Merges should be done by branch-owners. When conflicts aris, at least one of the conflicting sides has to decide upon the changes. Ideally both sides sit down on the diffs together but not a third party initially uninvolved with the source in question.
Failure in conflict solving (selecting the wrong changes) might result in build breakage or, even worse, undetected bugs. People need to be aware.
如果高级开发商“A”(将主线的改动并入其分支)处理冲突,而没有与主要变化与其相冲突的高级开发商“B”交谈,那么担任调解人并不容易。 如果它不喜欢为你越过一条线,则试图与B开发商交谈,说服他接近A,以便更快地解决冲突,减少错误。
But again in the end it is developer "A" s responsibility, not yours.
You seem to give an example already to your co-workers. If that is not enough, try to carefully point out that not enough communication was the reason for a broken build when it happens. Maybe talk to one senior in private about your thoughts, be open but not accusive. A "we could to better" sounds nicer than "You guys are doing it wrong". And for you as a younger professional, sentences like "I would feel better about my code if you tell me when it conflicts with yours" might be more appropriate than "You should ask for a second pair of eyes from the right person when you get conflicts", even though the later is more straightforward.
如果这一切都无助于,你可以考虑与你或团队领导讨论你面临的障碍。 如果他不是ool子,他将听。
www.un.org/Depts/DGAC. 结 论M/index_spanish.htm 分配和标签
<>1.>,我不想让其他团队在节目中加入“Hello, World!” 。 我想将分治视为普通的东西。 谁能给我一条在何时增设分支的 rule? 何时合并?
合并见问题4。
For Branching: You are perfectly right with trying to have as few branches as necessary. Branching comes at a price. C. 结 论omplexity, merging overhead etc.
I tend to stick to "branch on incompatible policy". What policy you ask? Each of your main branches should have a set of documented rules attached to them.
实例:
- tag-2.0.4
- release-2
- only fixes for existing features allowed
- checkins should have release-quality
- trunk
- must compile/validate
- Extending developed API allowed
- renaming and deleting API prohibited
- only complete bugtracker-issues
- receives merges from release branches
- feature-apirefactoring
- may alter the developed API and break compatibility
- pulling merges from trunk is feature-developers task
你们看到有3个有活力的部门和一个分支。 “地位-收益”是正确应用的“不相容政策”的一个例子。
应利用各处来减少风险和提高效率,分拨不同类型的发展活动。 分支政策单独界定了哪些发展和风险潜力是可以接受的。 • 要求你的tru子更加稳定? 界定新的政策“不采用W3C. 结 论有效器警告”。 如果开拓性的发展工作为了效率而必须打破这一规则,或提供快速的观念证明(我们先放弃,后再清理),那么,它就成为自己分支的良好候选国。
每当你或同事感觉到有人敦促打破一条规则,因为如果NOT遵守某项政策更为简单或更安全,那么你就会讨论一个分支的形成。
2. In what case branching a branch is a good idea?
answered above I think :).
一些实例 我碰到:
- Branch stable branch from trunk when release gets prepared (no new features)
- Branch integration branch from feature-branch when integration is too complex and time consuming
- branch a "special edition" release branch from an allready stable release that has some exclusive features or certain possibly unstable differences for a special customer.
- branch a translation-branch from your trunk that gets only wording changes and therefore can not break
另有十几个。 你的政策越受重视,你的分行越是令人 ex。
3. For tagging, my understanding is that tag symbolize a static point of the program ( ie : v1.0, v2.5) is that correct?
是的。 对于颠覆行为,可将其描述为其他内容。 “/tags/1.7.2”可以是项目的状况,因为它正在修订30932。 当某些释放准备就绪时,你可以指出修订数目,并将新的来源进行比较,或对这个较老的国家进行核查。 或者,你可以更容易地记住标签。
颠覆的标签也只不过是一个不接受任何承诺的分支。
<>strong>4.If I establish a Branch andstart written my change, should my team-matesstart syncing from my Branch? 或者他们是否仍在干线上发展? 还是应该为自己设立另一个分支?
简短回答: 当你不知觉时,就使用该空白,根本不合并(合成、推、拉)。
长期回答: 在一个理想的世界里,没有必要设立分支机构,因为所有开发商都在当场提供团队检查的所有变化。 在一个理想的世界里,这些变化不会与任何发展者自己不做的工作发生冲突。 无论在我的理想世界内进行什么发展者检查也是完全正确的,没有缺陷和 gl。
Alas,一个编程世界并不完美。 因此,你设立了分支机构,防止您的同事做些改变,或孤立你们的改变,以防出现干净的主线,有时是两者。
The direction of the flow of change (Your co-workers pull from you or you pull from your co-workers) depends on the riskyness expected in a branch.
How much risk would it be to "pull" (merge) changes that get checked in to a release-branch? Looking at the policies defined above it should be bugfixes only. The risk seems low. For most release-branch scenarios merging from them into the turnk is absolutely necessary as you would have to refix the bugs by hand before the next release-branch gets created from your trunk.
打破你自己的宝贵工作,或不得不改变自己的法典,多少风险在于把从主角的改动合并到你对tru的检查? 您可以发展新的功能,加强由您共同工作的团队,以完成新的执行方式取代专题处。 这可能会杀 mo。
<>http://www.un.org
我认为,首先提到“难民”规模的是聪明的人。 http://www.perforce.com/perforce/conferences/us/2005/presentations/Wingerd.pdf”rel=“noreferer” http://www.perforce.com/perforce/conferences/us/2005/presentations/Wingerd.pdf。
除每个分支的政策外,你还估算了“肯定”和“庇护”的比例。
A feature branch is "soft" as it is in constant flow, not well tested and mostly far away from any paying customer s eyes. It is therefore also more able to absorb changes. If things break you want them to break in "softer" branches.
你的tru子将是“中等”,因为它不是能够释放的,而是比一些偏远的特征部门更好的测试。 (单单单是因为更多的开发商对中继器进行检查,而不是对地分公司进行检查。) 如果不进行适当的整合,如果干线上出现巨大的相容性变化,可能会使开发商脱轨,但正常规模的核对会大大降低。
排放分部门是“最肯定的”分支,因为它们是完善的、经过测试的,有时是仅仅在生产使用时间之外。 如果你打破这种“葬礼”的话,那就是一个更大的痛苦。 另一方面,你对你在这个部门所交付的东西有更好的感觉,对它运作良好的信心(如果没有经过联合测试的证据)也更高。
您应命令各分支机构在难民规模上采取立场。 顶端公司软件。
- tags (very firm)
- release-2 (firm)
- trunk (medium)
- feature-apirefactoring (soft)
最佳实践言语是Mergedown, 制版”,。
Even better "Merge down, C. 结 论opy up at stable state"
合并:
- All commits that went in release-2, you should merge into the trunk as often as possible. (Bugfix-committer should do this)
- All commits into the trunk, including merged down fixes from release branches, you should merge into your feature-branches as often as possible. (Feature-Owner should do this)
“选择”
- When work in a feature-branch is complete "reintegrate" it. Use the SVN --reintegrate merge or do a last merge down into the feature branch and then copy all relevant files. --reintegrate merge is highly recommended.
- When you decide it is time to stabilize your trunk and target a new release soon, you branch your trunk into a new "release-3" for example. In SVN branching is copying and vice versa.
- When your release is bugfixed, tested and working well enough you again copy up into a new release tag
最后但并非最不重要的是阅读了这一最佳做法文件。 页: 1 http://www.perforce.com/perforce/papers/bestpractices.html。
• 搜索中继流,或看我对更名为SVN-releated Q &的描述;A。
Oh,知道你如何成功实现你的美好抱负,是空洞的。
有一个月
C. 结 论