TFS:添加已经在项目中但不在TFS中的文件
转移一个项目的代码,会发现这些代码不在TFS的管理中也没有成为新增文件(没有TFS的加号小图标)。
这时可以选中这些文件后从菜单里选择
文件->源代码管理->从源代码管理中排除
然后再次选择
文件->源代码管理->从源代码管理中排除
去掉勾选。于是这些文件进入了挂起的更改。posted @ 2009-11-02 11:18 kaikai 阅读(223) 评论(0) 编辑
转移一个项目的代码,会发现这些代码不在TFS的管理中也没有成为新增文件(没有TFS的加号小图标)。
这时可以选中这些文件后从菜单里选择
文件->源代码管理->从源代码管理中排除
然后再次选择
文件->源代码管理->从源代码管理中排除
去掉勾选。于是这些文件进入了挂起的更改。posted @ 2009-11-02 11:18 kaikai 阅读(223) 评论(0) 编辑
posted @ 2009-10-17 21:47 kaikai 阅读(112) 评论(1) 编辑
昨天晚上单刷噩梦汜水关。毁了2套武器,吃了无数的药和大力丸,耗尽复活币。终于干掉了华雄。
同时也想到了如何将一个分支上暂时不能签入但又需要转移到其它分支上的大量代码妥善转移的方法。
1. 获取文件清单
首先,在vs中打开挂起的更改窗口:视图->其它窗口->挂起的更改
选中要转移的文条件,然后点搁置,填写搁置集名称,然后去掉在本地保留挂起的更改选项,点搁置确认。
注意,此时本地挂起的更改都已经被撤销了。
回到挂起的更改窗口,选择取消搁置,在取消搁置窗口的结果列表中选中刚才的搁置集,并点取消搁置确认。
此时刚才搁置的文件又回到了本地。
然后,打开输出窗口:视图->输出
在显式以下输出中选择源代码管理 – Team Foundation
可以看到一串形如:
取消对 $/project/…/*.* 的更改的搁置
的文件清单,将所有这些清单剪切到你熟悉的文本编辑器,把头尾部分去除,只保留分支内的目录
如橙色部分:
取消对 $/project/Sources-branch-0.0.62/GameEngine/fsm/state.cpp的更改的搁置
将整个清单剪贴备用。
2. 合并代码
获取需要转移的目标分支(建议获取最新版本的代码,避免多次合并)
用Beyond Compare 3比较两个分支目录。
在Beyond Compare中选择File Filters
把剪贴板上的文件清单贴在Include files内
Beyond Compare内选择Show No Orphans,Only Compare Files
此时仅列出所有原本挂起的更改文件。
手动确认和合并你做出的修改。请注意,这里需要格外仔细!
因为是2个不同分支的代码,BeyondCompare列出的不同的地方不仅仅是你要做的修改。
3. 签出目标代码
在目标代码下建立checkout.bat文件,内容如下
call “%VS80COMNTOOLS%vsvars32.bat”
for /F “” %%i in(filelist.txt) do tf checkout %%i
建立filelist.txt,内容是刚才剪贴板的文件清单。
然后双击checkout.bat运行后签出所有清单内的文件。
4. 最后签入
建议你再review一下所有要签入的文件。
谢谢你阅读完整个过程!
kaikai
posted @ 2009-09-17 20:06 kaikai 阅读(408) 评论(1) 编辑
友元接口-限制你的友元类数量
在写C++程序时,也许你遇到过这样的情况:
在一个类有一组策略,而且这组策略的实现都需要访问A的一些成员,而且这些成员并不希望被其它类所访问。
一般这些成员被期望设置为保护或者私有的,并且这组策略被当作这个类A的友元类。如:
现在,假如你需要添加新的策略Strategy4为了维持这种微妙的关系,你需要把Strategy4添加为类A的新的友元类。
随着策略的增加,这个过程不断扩展A的友元类,最终你恐怕不会喜欢你看到的代码。并且由于每次增加策略都需要使得依赖A的代码重新编译,这里一定有什么不妥之处。
我想到一种解决方法,可以让你的代码看上去不算太混乱。
首先,既然这组策略以相似的情况出现在A的周围,那么它们可能有相似之处。比如它们可能需要访问A的同一部分成员。
那么假如通过一个代理类来访问这些成员,那么这组策略就不必都是A的友元,只要这个代理是A的友元即可。
这个代理我称之为友元接口。
如此一来,既完成了友元关系,又减少了依赖关系。
缺点在于代码不具备防御性,非授权类可以轻易的获得访问A保护成员的能力。只需要从友元接口继承即可。
这里再进一步可以看到,如果类A有多组不同方面的策略,这些策略需要访问A的成员的不同子集,那么它们可以独立的归到各自的友元接口上,互不相干。
kaikai
ps. 发现被转载了,没带上链接,而且还被分类到java版块。特此在内容中做一些改动:标明语言c++
posted @ 2009-09-08 13:01 kaikai 阅读(117) 评论(0) 编辑
posted @ 2009-07-23 14:21 kaikai 阅读(98) 评论(0) 编辑
posted @ 2009-07-23 14:19 kaikai 阅读(289) 评论(0) 编辑
posted @ 2009-07-23 14:16 kaikai 阅读(171) 评论(0) 编辑
posted @ 2009-07-23 14:09 kaikai 阅读(71) 评论(0) 编辑
posted @ 2009-07-23 14:08 kaikai 阅读(195) 评论(0) 编辑