我有一个个人项目的Mercurial存储库,我已经将主存储库存储在我的Dropbox中几个星期了(沿着这条线的东西;我也理解它也可以用git).
这个想法是它既可以作为一种使用多台机器的方式,也可以作为远程备份.我克隆了存储库并处理非Dropbox副本,并且只是偶尔推送一次更新,就像我想的那样,我会使用Bitbucket.
与使用专用托管(Mercurial中的BitBucket)相比,你能想到这个想法的任何缺点吗?我知道Bitbucket为单个用户提供免费帐户,这很好,但是它们限制在150M,这不是很大.
特别是,Dropbox的同步过程是否可能破坏存储库?我不得不在主存储库上运行一次hg recover,但它可能是无关的(无论如何它很高兴恢复).有没有人对这个想法有不好的体验?有没有人有更好的经验,可以减轻我的担忧?有没有人基于对这些东西内部的更好理解而有意见?
编辑:我在问题中添加了一些说明.它们用斜体字表示.
我做了一个小程序来测试System.currentTimeMillis().我有一个奇怪的结果.这是我的日志:
1 26-12-09 20:48:21 - [Log] lTime = 1261860501009
2 26-12-09 20:48:21 - [Log] lTime = 1261860501012
3 26-12-09 20:48:21 - [Log] lTime = 1261864899078
4 26-12-09 20:48:21 - [Log] lTime = 1261860501033
5 26-12-09 20:48:21 - [Log] lTime = 1261860501069
Run Code Online (Sandbox Code Playgroud)
如您所见,第3行存在问题.时间磨损是错误的.它应该在1261860501012和1261860501033之间.大约有73毫秒的误差.
有人知道问题来自哪里?
非常感谢
bill0ute
编辑:操作系统:Debian 4.0,Java:6_17.
我的代码:
while (true)
setLog (System.currentTimeMillis ());
Run Code Online (Sandbox Code Playgroud)
编辑:程序在基于Linux的VPS上运行
我计划从头开始一个新的 Web 应用程序,但我想知道我是否不太关注可扩展性。我是否应该从一开始就担心这个问题,或者如果我碰巧真的成功了,最好先关注应用程序本身,然后再扩展?
所以我拉了一个链接列表,我试图按人气排序这些链接.我正在使用黑客新闻算法:
Y Combinator's Hacker News: Popularity = (p - 1) / (t + 2)^1.5 Votes divided by age factor. Where p : votes (points) from users. t : time since submission in hours. p is subtracted by 1 to negate submitter's vote. Age factor is (time since submission in hours plus two) to the power of 1.5.factor is (time since submission in hours plus two) to the power of 1.5.
我通过使用order by在MySQL和PHP Framework中完成了这个
(SUM(votes.karma_delta) - 1) / POW((TIMESTAMPDIFF(HOUR, links.created, NOW()) …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个简单的正则表达式来验证一个10位数的电话号码.我想确保这个数字正好是10位数字,没有字母,连字符或parens,前两位数字不是以0或1开头.有人可以帮忙吗?
我们正在编写一个本地Windows应用程序(MFC),它将把一些数据上传到我们的网络应用程序.Windows应用程序将允许用户登录,之后它将定期将一些数据上传到我们的Web应用程序.上传将通过简单的HTTP POST传输到我们的网络应用程序.我担心的是我们如何确保上传实际上来自我们的应用程序,而不是来自curl或类似的东西.我想我们在这里看一些公钥/私钥加密.但我不确定我们是否能以某种方式在我们的win app可执行文件中嵌入一个公钥并完成它.或者,这个公钥是否太容易在我们的应用程序之外提取和使用?
无论如何,我们正在建立双方(客户端和服务器),所以任何东西都是一个选项,但它必须通过HTTP(S).但是,我们不控制win(客户端)应用程序的执行环境,而且在他/她的系统上运行应用程序的用户是唯一一个通过游戏系统获得某些东西的用户.
在尝试编译以下代码时,我收到了一个非常奇怪的g ++警告:
#include <map>
#include <set>
class A {
public:
int x;
int y;
A(): x(0), y(0) {}
A(int xx, int yy): x(xx), y(yy) {}
bool operator< (const A &a) const {
return (x < a.x || (!(a.x < x) && y < a.y));
}
};
struct B {
std::set<A> data;
};
int
main()
{
std::map<int, B> m;
B b;
b.data.insert(A(1, 1));
b.data.insert(A(1, 2));
b.data.insert(A(2, 1));
m[1] = b;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出:
$ g++ -Wall -W -O3 t.cpp -o …Run Code Online (Sandbox Code Playgroud) 我需要本地和服务器上的文件时间戳同步.这是通过在配置中设置use-commit-times = true来完成Subversion,以便每个文件的最后修改时间是在提交时.
每次我克隆我的存储库时,我都希望文件的时间戳能够反映最后一次更改它们在远程存储库中的时间,而不是在克隆存储库时.
有没有办法用git做到这一点?
我正在努力为我的OSS应用程序添加异常和异常处理.例外从一开始就是一般的想法,但是我想找到一个好的异常框架,并且在开始使用它们之前,要完全理解C++异常处理约定和习惯用法.我在使用C#/ .Net,Python和其他使用异常的语言方面有很多经验.我对这个想法并不陌生(但远非主人).
在C#和Python中,当发生未处理的异常时,用户会获得一个很好的堆栈跟踪,并且通常会获得许多非常有用的无价调试信息.如果你正在开发一个OSS应用程序,让用户将这些信息粘贴到问题报告中......好吧,我只是说我发现没有它就很难生存.对于这个C++项目,我得到"应用程序崩溃",或者来自更明智的用户,"我做了X,Y和Z,然后它崩溃了".但我也想要调试信息!
我已经(并且非常困难)让我感到安心,因为我永远不会看到跨平台和交叉编译的方式获得C++异常堆栈跟踪,但我知道我可以获得函数名称和其他相关信息.
现在我想要那些未经处理的例外情况.我正在使用boost :: exception,他们有这个非常好的diagnostic_information thingamajig,它可以打印出(unmangled)函数名,文件,行,最重要的是,程序员添加到该异常的其他异常特定信息.
当然,我会尽可能地处理代码中的异常,但我认为我不会让一对夫妇溜走(当然是无意的).
所以我想做的是将我的主入口点包装在一个try块中catch,创建一个特殊的对话框,通知用户应用程序中发生了错误,当用户单击"更多"或"调试"时会显示更详细的信息信息"或其他什么.这将包含来自diagnostic_information的字符串.然后,我可以指示用户将此信息粘贴到问题报告中.
但是一种唠叨的直觉感觉告诉我,将一切都包装在一个试块中是一个非常糟糕的主意.我将要做什么愚蠢的事情?如果是(即使不是),有什么更好的方法来实现我想要的?