我在SVN存储库中有几个具有不同发布周期的项目.通过使用SVN中的经典标记结构创建版本.当在版本中存在要修复的错误时,会从标记创建分支,该错误会被修复,然后从那里合并到主干中.
现在,出于多种原因,我想通过中央推送站点从SVN切换到mercurial.
问题:在mercurial中组合多个项目的最佳方式是哪种方法在它们之间共享很少的代码?我应该创建多个推送网站,每个项目一个?
请在答案中包含有关如何使用您首选的存储库设计版本重新创建我的release-tag,bugfix分支的说明.
编辑:我想安装尽可能少的扩展.
EDIT2:
鉴于此SVN布局:
.
|-- project-a
| |-- branches
| | |-- 1.x
| | `-- feature-1
| |-- tags
| `-- trunk
`-- project-b
|-- branches
|-- tags
| |-- 1.0
| `-- 1.1
`-- trunk
Run Code Online (Sandbox Code Playgroud)
(谢谢@bendin!:))
使用多个hg推送存储库更好吗?
project_a-trunk
project_a-1.x
project_a-feature-1
project_b-trunk
Run Code Online (Sandbox Code Playgroud)
对于分支机构.标签被折叠到适当的分支中.
或者你宁愿在这个例子中使用两个推送存储库
project_a
project_b
Run Code Online (Sandbox Code Playgroud)
使用命名分支,因此在一个回购中有多个头.
我看到多头回购的优点是我不必去寻找多个回购中的标签.我看到的缺点是,hg书似乎不鼓励多头回购.你会怎么做?
有没有办法通过git存储库上的ldap授权用户?或者措辞略有不同:如果他们不在特定的ldap组中,有没有办法拒绝人们拉/推?
编辑:是的,使用PAM和/或钩子的好主意.有没有人有经验将git与pam_ldap结合使用?
我们目前正在讨论.NET中的扩展方法是否坏.或者在什么情况下,扩展方法可以引入难以发现的错误或以任何其他方式出乎意料地行为.
我们想出了:
题:
编辑:
另一个非常危险的情况 假设您有一个扩展方法:
namespace Example.ExtensionMethods
{
public static class Extension
{
public static int Conflict(this TestMe obj)
{
return -1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
并使用它:
namespace Example.ExtensionMethods.Conflict.Test
{
[TestFixture]
public class ConflictExtensionTest
{
[Test]
public void ConflictTest()
{
TestMe me = new TestMe();
int result = me.Conflict();
Assert.That(result, Is.EqualTo(-1));
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您使用它的命名空间更长.
现在你用这个引用一个dll:
namespace Example.ExtensionMethods.Conflict
{
public static class ConflictExtension
{
public static int Conflict(this TestMe obj)
{
return 1;
}
}
} …Run Code Online (Sandbox Code Playgroud) 我目前正在开发需要某种用户身份验证的Silverlight 3应用程序,因为从WCF服务提取的数据是特定于用户的.目标受众是常规互联网 - 因此没有AD可以进行身份验证.
以下是我对这种情况的一些问题:
我有一个控制台应用程序,除了平面文件之外,应该尽最大努力记录到数据库.当没有网络连接(因此没有与数据库的连接)时,log4net会输出错误.
log4net:ERROR [AdoNetAppender] Could not open database connection [Data Source=...]
System.Data.SqlClient.SqlException: A network-related or instance-specific
error occurred while establishing a connection to SQL Server. The server
was not found or was not accessible. Verify that the instance name is correct
and that SQL Server is configured to allow remote connections. (provider:
Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at ...
Run Code Online (Sandbox Code Playgroud)
我不想在控制台中看到该错误.有没有办法抑制内部log4net错误消息?重新编译会没问题,但如果可能的话,我会优先选择基于配置的设置.