标签: codebase

如何使用git/github处理两个独立但非常相似的代码库?

在git和git-hub中处理两个独立但非常相似的代码库的最佳方法是什么?

背景

我有一个小型shell脚本项目的git存储库.它只有2或3个代码文件,我经常在一个文件中工作.虽然我最初的目标是服务于我的特定目标,但我认为它对其他人来说更有用.我编写了一般用例版本,然后将其修改为特定于我的特定目标.在特定的版本中,我可能会修改变量,输入密码,切换一些代码的顺序,取出for循环......无论如何.

我尝试了什么

我尝试了两种不同的方法,并且都没有像我认为的那样最佳:

  1. 两个单独的回购
    • 问题:代码修改为一个,不能轻易地和有选择地合并到其他
  2. 一个回购中的两个分支
    • 问题:分支最终会合并在一起.我并不是要将这些完全合并在一起,而是有选择地合并部分代码.
    • 问题:我发现当尝试在分支之间使用合并命令时,很容易混淆什么分支被合并的代码.我以某种方式合并了其中两个完全无意的代码,直到我查看了两个分支中文件的内容时才发现不正确的合并

我还看到了如何将两个单独但相似的代码库合并为一个SVN代表?那是关于SVN的.因为我不知道SVN,所以我很难跟随.我认为这是一个不同的问题,因为他并没有试图公开这个代码的一个版本.

我希望解决的用例

具体来说,问题出现在:

  • 评论同步 - 我正在准备我的专业版,并注意到我可以在一行末尾添加一个解释性评论.我添加它,但评论现在不在通用版本中.
  • 东西我不想共享 - 我正在准备我的专业版本,我添加了密码或更改操作的完成顺序.我不希望这些更改进入通用版本.
  • 相同的文件 - 以上两个更改通常位于同一个文件中,这使得很难将内容合并在一起.有交互式合并,但我不知道是否可以在单个文件中完成交互.
  • 常规 - >专业 - 我或其他人可能会更新通用版本,以获得在我的专业版本中也有用的新内容或注释.我想把这些从一般 - >专业,而不是在专业版本中的任何其他代码差异搞乱.

Git vs Github

大多数情况下,我的问题是想知道如何在git的范围内做到这一点.但是,它也可能影响如何与github进行交互.我的通用版本在github上.专业版不应该在github上.我,我的分支方法上面没有推两个分支,如果我很小心......但我总是不确定.无论哪种方式,解决方案应该允许有一个公共版本,一个版本只是本地保存...即使它有点复杂或需要小心.

git github codebase

6
推荐指数
1
解决办法
1882
查看次数

使用Codebase加载程序集

基于这个问题,我尝试使用<codebase>定位外部组件.现在,当我运行该程序时,我收到一条错误消息,指出私有程序集位于appbase之外.我该如何解决这个问题?我看到的一个建议就是签署集会.我做了这个,但后来我的程序找不到程序集.当我取消签名时,我收到outside the appbase错误.如何加载位于其他地方使用<codebase>而不是安装到GAC的程序集?(探测也不起作用,似乎它仍然必须存在于应用程序文件夹中)我的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>

        <assemblyIdentity name="NGameHost"

                          culture="neutral" />
        <codeBase version="1.0.0.0" 
                  href="C:/Program Files/NetworkGame3/api/NGameHost.exe"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

</configuration>
Run Code Online (Sandbox Code Playgroud)

c# codebase console-application .net-assembly assembly-signing

6
推荐指数
1
解决办法
9551
查看次数

如何组织Windows Phone代码库以同时针对7.x和8平台

我接手了一个以前针对WP 7.1平台的Windows Phone项目,随着最近宣布的新平台,它也应该针对WP 8.

我的VS 2010解决方案包含几个项目(数据访问,模型,测试和WP7客户端应用程序),我正在徘徊在如何包含对WP8的支持.

我必须注意,由于使用了Toolkit控件和专门针对WP7.1的其他第三方库,代码库与WP8不兼容.

Visual Studio版本还有另一个问题 - WP7.1可以与VS 2010一起使用,但WP8需要VS 2012. 我应该将整个代码库移动到VS 2012吗?

关于如何以最有意义的方式组织代码库以避免重复和可能的痛苦维护的任何好建议?

我在考虑一个解决方案 - 多个项目多个解决方案 - 可重用项目方法.代码重复(如两个单独的文件夹/解决方案)应该是最不可能的方法(回退).

c# codebase visual-studio windows-phone-7 windows-phone-8

6
推荐指数
1
解决办法
467
查看次数

在app.config中使用<codebase>元素

我打算在我的.NET 3.5 Windows应用程序的bin文件夹以外的文件夹中保留几个dll.我不确定如何使用codebase元素或探测元素来指定正确的路径.这就是我现在在app.config文件中所拥有的,

<runtime>
 <assemblyBinding>
  <dependentAssembly>
    <assemblyIdentity name="CommonLib" publicKeyToken="f0b5026b59d5645e"   
     culture="neutral" />
    <codeBase version="1.0.0.0" href="SharedFolder\CommonLib.dll" />
  </dependentAssembly>
 </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

我明白了,无法在运行时加载程序集错误.看来我在配置文件中做错了.SharedFolder是添加到项目的文件夹.

.net codebase probing

5
推荐指数
1
解决办法
4962
查看次数

适用于不那么聪明的程序员的源控制系统

问题:

一个庞大的代码库,跨越数百万SLoC,由大量的第二/第三速率程序员(大多数人并不关心)维护(支持/主动增强等).几十年前,很少有智能人员使用下面使用CVS的包装器,当前这一代开发人员正在使用该系统(其中90%的人没有直接使用CVS,或者听说过/使用过另一个命令行源控制系统) .

效果:

使用CVS和跨多个模块的多个团队,不可避免地=> CVS分支合并到主干.这将是一种以最虔诚和仪式可能的方式实践的活动.[=>蛮力; 计划好几个星期,涉及十几个人2/4天.手动处理数百个(有时数千个)源. 有趣的是,涉及的人不是修复的原始所有者,他们只是通过检查差异; 真的,不是在开玩笑!这导致库/模块/功能的完整性存在很多不一致性,并且在这些合并期间花费了太多精力来纠正由于回归导致的缺陷.

而现在,问题是:

什么替代源控制系统可以带来一些积极的变化,并改善程序员/经理和环境中的其他人的生活?

由于身边的每一个人似乎都醉KoolAid(同唱"这 - 是 - 如何-事情,是全熟,处处"),甚至没有给出关于寻找一个替代一想,是时候有人做到这一点.但考虑到那些使用该系统的人,应牢记以下几个方面.

  1. 简单易用和理解,甚至Joe Coder应该能够毫不费力地使用它.(无论如何这不需要,因为包装器会隐藏真正的引擎盖下的东西)
  2. 一个巨大的代码库(由多种语言的源组成),在任何给定时间都有多个(大约30个)活动分支.
  3. 轻松融入各个分支机构.(考虑到变化量非常大)
  4. 如果可以的话,对该系统的商业支持将是甜蜜的.
  5. 开发在UNIX服务器上进行(至少应在HP-UX/Solaris上运行)
  6. 应该很好地扩展(数千个用户/数十万个来源)
  7. 好文档
  8. 简单/清晰的基于浏览器的界面,用于比较/查看更改/副本.
  9. 存储库中没有二进制文件,因此无需担心它们.
  10. 将当前存储库内容导入新系统的规定.

所以,请建议.有希望&&出路吗?:) 我很确定像git这样的东西会被彻底拒绝(他们相信"git只适用于聪明的人")

编辑:我也考虑过Mercurial和BitKeeper,并向链接人员提及过它.希望最好的!谢谢!:)

cvs version-control codebase

5
推荐指数
1
解决办法
381
查看次数

Projects Vs XCode工作区中代码库的目标

关于目标项目概念的XCode文档很有帮助,但我仍然不确定在我的情况下使用的最佳实践.

我在一个SVN存储库中有一个现有的代码库(用于Windows和iOS),它刚刚从一个测试应用程序重构为一个中央库和一个应用程序.这个想法是随着时间的推移,更多应用程序将使用此中央库

XCode项目将一组源文件映射到一个或多个目标,因此我可以为我的整个代码库创建一个项目,为库创建一个目标,为每个应用程序创建一个目标.但是每个应用程序显然都有自己的代码,因此将所有源代码以这种方式放入单个项目似乎有点笨拙.

或者,我可以拥有一个包含多个项目的工作区,每个项目都有一个目标.这更像是我为Windows构建设置的东西,其中Visual Studio解决方案对应于Xcode工作区,VC++项目将整齐地映射XCode项目的组织方式.

但在这种情况下是否存在"正常"/预期的做法,我应该尝试遵循一些非官方标准,以便其他开发人员不要混淆?

xcode codebase organization ios

5
推荐指数
1
解决办法
1159
查看次数

具有用于编译时检查的示例值是否常见?它们应该放在代码中的什么位置?

我有一个相当复杂的数据类型和记录结构,通过查看不熟悉代码库的人的生产代码并不容易理解。

为了理解它,我创建了这种具有两个优点的虚拟函数:1. 它们在编译时被检查 2. 它们作为某种文档,展示数据类型的整体结构如何和记录混合在一起:

-- benefit 1: a newcomer can quickly make sense of the type system
-- benefit 2: easier to keep track of how the types evolve because of compile-time checking
exampleValue1 :: ApiResponseContent
exampleValue1 = ApiOnlineResponseContent [
        OnlineResultRow (EntityId 10) [Just (FvInt 1), Just (FvFloat 1.5), Nothing],
        OnlineResultRow (EntityId 20) [Just (FvInt 2), Nothing, Just (FvBool True)]
    ]
Run Code Online (Sandbox Code Playgroud)

唯一让我有点困扰的是,他们觉得放在生产代码中有点尴尬,因为它们显然是死代码。然而,它们也不是测试,它们只是编译时检查的示例,说明如何从复杂的嵌套类型将值组合在一起。因此,它们显然不属于生产代码,但也不完全属于测试。

拥有这种编译时示例是常见的做法吗?它们应该放在代码库中的什么位置?

haskell types type-systems codebase

5
推荐指数
0
解决办法
73
查看次数

比较多个文件的公共代码

我有两个项目,每个项目都有大量的代码库。我想运行一个工具来浏览每个项目中的所有文件,并显示项目中的哪些文件具有相似的代码。我什至不确定是否存在这样的东西,但我记得在学校时,老师们有一个工具,他们在多个学生的所有代码上运行,以识别他们的代码有多相似(以抓住作弊者)。

diff compare codebase

4
推荐指数
1
解决办法
9840
查看次数

在不破坏现有代码的情况下向结构添加字段

所以我正在使用这个巨大的代码库,并意识到其中一个结构缺少一个重要的领域.我尽可能密切地查看代码(使用结构)并得出结论,添加额外的字段不会破坏它.

关于我可以搞砸的任何想法?

另外:欢迎设计建议 - 我能做到这一点的最佳方式是什么?

例如(如果我不清楚):

typedef struct foo
{
  int a;
  int b;
}
foo;
Run Code Online (Sandbox Code Playgroud)

现在是:

typedef struct foo
{
  int a;
  int b;
  int c;
}
foo;
Run Code Online (Sandbox Code Playgroud)

c c++ struct codebase

3
推荐指数
1
解决办法
2548
查看次数

Java RMI中代码库的重点是什么?

我目前正在学习RMI.

我真的不明白代码库的概念.我读过的每篇论文都暗示,调用Remote对象的客户端可以从代码库加载Method定义.现在问题是:我不需要在类路径中使用描述/接口吗?如果我在运行时只知道它们,我如何调用远程对象上的方法?这甚至不会编译.

我完全忽略了这一点吗?那么代码库到底有什么意义呢?提供代码库似乎需要很多额外的工作和要求

谢谢

java rmi codebase

3
推荐指数
1
解决办法
1900
查看次数