我是SVN的新手.在分支上工作了一天左右后,我尝试将更改从主干合并到分支:
svn merge svn://server/trunk
Run Code Online (Sandbox Code Playgroud)
问题在于,每当SVN遇到冲突的文件时,它都无法逐行识别并将整行标记为冲突.我尝试了其他几个SVN客户端,并尝试切换终端线和空白区域选项而没有任何进展.我究竟做错了什么?我认为这是最简单的合并情况,所以我希望这可以使用最默认的Subversion设置,任何客户端和任何SVN版本.它是一些已知的初学者的捕获?
客户端:1.5.5(SlikSvn:tag/1.5.5@34877)WIN32
服务器:1.4.6(r28521),Windows
编辑
根据以下评论和答案中的建议,我做了更多调查:
有问题的文件是UTF8.
它们没有任何SVN属性.
"svn diff"命令正确识别差异.
从存储库返回ad hoc(自定义大小写)数据的推荐方法是什么?这些数据不适合任何模型实体或扩展某些模型实体?
101例子是无处不在的hello word应用程序:博客系统.假设您要加载帖子列表,其中帖子条目具有Post实体中不存在的一些其他信息.假设这是评论的数量以及上次评论的日期和时间.如果使用普通的旧SQL并直接从数据库中读取数据,这将非常简单.如果我无法负担为每个帖子加载评论的整个集合,我应该如何以最佳方式使用存储库模式,并且我想在一个数据库中执行它?这种情况有没有常用的模式?现在假设您有一个中等复杂的Web应用程序,其中每个页面需要稍微不同的自定义数据,并且无法加载完整的层次结构(性能,内存要求等).
一些随意的想法:
向每个模型添加属性列表,这些属性可以由自定义数据填充.
子类模型实体,并为每个子类创建自定义读取器.
使用LINQ,撰写即席查询和读取匿名类.
注意:我最近问了一个类似的问题,但它似乎过于笼统,并没有引起太多关注.
例:
根据以下答案中的建议,我将添加一个更具体的例子.这是我试图描述的情况:
IEnumarable<Post> posts = repository.GetPostsByPage(1);
foreach (Post post in posts)
{
// snip: push post title, content, etc. to view
// determine the post count and latest comment date
int commentCount = post.Comments.Count();
DateTime newestCommentDate = post.Comments.Max(c => c.Date);
// snip: push the count and date to view
}
Run Code Online (Sandbox Code Playgroud)
如果我不做任何额外的事情并使用现成的ORM,这将导致n + 1个查询或可能一个查询加载所有帖子和评论.但最好的情况是,我希望能够只执行一个SQL,它会为每个帖子返回一行,包括帖子标题,正文等,以及评论计数和最近的评论日期.这在SQL中是微不足道的.问题是我的存储库无法读取并将此类数据放入模型中.最大日期和计数在哪里?
我不是问怎么做.您可以随时以某种方式执行此操作:向存储库添加额外的方法,添加新类,特殊实体,使用LINQ等,但我想我的问题如下.为什么存储库模式和正确的模型驱动开发如此被广泛接受,但它们似乎并没有解决这个看似非常普遍和基本的情况.
实际上声音匹配/搜索的现状是什么?我目前远程参与规划一个Web应用程序,其中包括并公开一个记录的短音频剪辑数据库(最多3-5秒,人名).已经提出了一个问题,即是否可以基于用户语音输入实现搜索.我的直觉告诉我,从计算和算法的角度来看,这是一项不可能完成的任务,尤其是在Web应用程序中(除此之外,它不是应用程序的核心功能).我意识到可能有许多学术项目,这将是一个很好的研究课题,但它不是任何可以作为附加功能实现到中型Web应用程序的东西.为了支持我的说法,我花了半个小时搜索,以便我不会错过任何明显的,但我真的找不到任何好的消息来源.
我知道在没有花费更多时间研究自己的情况下问一个问题并不是很负责任,但是我一直注意到在SO上发出一个问题更有效,更准确,更快,只是随机搜索的东西.
似乎我必须遗漏一些完全基本的东西。我试图实现的目标看起来很常见,所以我想知道为什么没有直接的方法。
问题是我想从 JavaScript 刷新当前页面并同时登陆 #section。如果我简单地做:
document.location.href = document.location.href + "#section";
Run Code Online (Sandbox Code Playgroud)
我测试过的所有浏览器都只是滚动到那个#section(没有重新加载)。从某种意义上说,这是有道理的。只是为了完整性,如果我这样做
document.location.assign(document.location.href + "#section");
Run Code Online (Sandbox Code Playgroud)
它做同样的事情(毫不奇怪;它在内部归结为相同的功能肯定)。最后,该document对象似乎还有一个document.reload()函数,该函数接受一个可选的布尔参数,指定是否要强制重新加载,但显然,它不允许指定 #section。我能找到的唯一方法(使用这些方法)是以下组合:
document.location.assign(document.location.href + "#section");
document.location.reload();
Run Code Online (Sandbox Code Playgroud)
但这并不理想,因为您可能已经猜到了,它会滚动然后重新加载,这导致浏览器实际上最终滚动了三遍。
我知道有一些方法可以解决它:服务器端重定向或添加一些独特的随机查询字符串参数,但是没有简单的方法似乎很奇怪。
我通过3G从iPhone发送UDP数据包时遇到了一个奇怪的问题.几乎每次我的应用程序在较长时间的网络不活动后开始(例如在手机来自睡眠模式或刚刚获得3G连接之后),我的应用程序无法发送任何UDP数据包.我收到kCFSocketError错误状态CFSocketSendData.然后,应用程序逻辑会重新尝试每五秒钟定期发送一次数据包,但无论我让它运行多久,它都会一直失败.但是,当我将应用程序切换到后台并打开时,例如,Safari中的网页(当应用程序仍然在后台失败时),应用程序突然开始工作.基本上,似乎其他网络活动(来自Safari,地图等)"开启真正的网络".例如,我是否需要在网络初始化方面做一些特别的事情?
这是我用来发送UDP数据包的代码的简化片段:
CFSocketRef cfSocket = CFSocketCreate(NULL, 0, SOCK_DGRAM, IPPROTO_UDP, kCFSocketNoCallBack, NULL, NULL);
if (!cfSocket)
{
// snip: some error handling
}
struct sockaddr_in addr;
// snip: init addr
CFDataRef cfAddr = CFDataCreate(NULL, (unsigned char *)&addr, sizeof(addr));
CFSocketError sendPacketResult = CFSocketSendData(cfSocket, cfAddr, cfPacketData, 0.0);
if (sendPacketResult != kCFSocketSuccess)
{
// try again in 5 seconds
}
Run Code Online (Sandbox Code Playgroud)
一切正常,Wi-Fi没有任何问题.
公平地说,我认为我在标准的iPhone应用程序(Safari,Maps,...)中有时(但偶尔也会)看到相同的行为.有时他们拒绝连接(甚至认为我看到了3G图标),我需要关闭并重新打开它们.但这是非常罕见的.
编辑:可能相关的问题:在iPhone上,EPERM(errno == 1)对UDP数据发送()的响应意味着什么?.
好的,这是事实.我不是数据库大师或管理员.事实上,除了一些偶尔的索引/查询调优之外,我不会经常在数据库中搜索.我经常遇到的一件事是SQL Server事务日志.我知道它是什么,它包含什么以及它是如何工作的(至少在概念上),但我想我不明白为什么SQL Server似乎如此依赖于事务日志.
这是第一个问题.如果我错了,请纠正我,但在我看来,默认情况下,事务日志将只包含数据库中所有更改的完整历史记录.有两种迹象表明情况可能确实如此.当我创建一个新数据库时,其日志的最大大小设置为"不受限制的增长".第二个原因是我经常处理具有巨大事务日志的小型数据库,无论我做什么都无法缩小.这似乎很奇怪我无法相信这是真的.为什么我默认需要整个历史记录?我所关心的只是处于一致状态的最新数据版本.好吧,我怀疑在某些情况下可能有正当理由,但我认为这是一个额外的选择.
我的第二个问题是为什么摆脱过渡日志这么复杂?它只是我,还是没有直接的方法呢?就在最近,我试图摆脱100MB + 5MB数据库的日志,我找到的最简单的方法是分离数据库,删除日志并重新连接它(甚至SQL服务有点抱怨).我尝试了收缩命令以及我能找到的所有可能的选项,但我只能收缩到约50%.数据库没有被使用(没有活动连接),老实说,我根本不关心任何过去的转换.我注意到可能还有其他"方法"如何做到这一点; 一些涉及备份和恢复.
我努力尝试阅读MSDN文档并学习更多关于过渡的内容,但是大约15分钟之后感觉就像在泥泞中走路一样,我放弃了.我知道对于数据库管理员和专家来说,我的问题听起来很傻.我感谢任何反馈.
编辑:在第一个答案之后,我意识到我可能不够清楚.我知道事务日志在事务期间如何工作,以及它为什么重要,并且它可以用于备份目的.我想我想从开发人员的角度提出更多问题.大多数时候我处理暂存/测试临时数据库,这些数据库不需要任何备份,除了我之外没有人使用,我经常发现自己需要传输它并且拥有一个巨大的过渡日志在这种情况下是不必要的不便.
当我在Visual Studio 2008中点击编译项目(SHIFT + F6)时,Visual Studio似乎总是首先检查引用的项目/库.这是可以理解的,因为它们必须首先编译,但是目前我大部分时间都只是在顶层项目(它是一个引用了许多库的ASP.NET应用程序)上积极工作,并且引用的库正在进行中在那里,每次都不需要检查.
当我进行完全重建时,大约需要15秒(在预热的机器上).当我在ASP.NET项目中进行更改时,Visual Studio花费大约10秒钟来检查引用的库.
有没有办法"告诉"Visual Studio:"请相信我,我知道引用的库在那里,不检查它们"?在这种情况下,如果我的假设错误,我会很好地收到编译错误.
注意:我怀疑C/C++开发人员可能会对此感到好笑,因为他们通常会在几分钟内(通常在几小时内)测量编译时间.另一方面,在C/C++中,只能编译一个文件.
audio ×1
browser ×1
c# ×1
database ×1
iphone ×1
javascript ×1
model ×1
objective-c ×1
sockets ×1
sql ×1
sql-server ×1
svn ×1
udp ×1