问题列表 - 第38471页

在Git中提交之前临时清除未跟踪的文件

每当我提交时,我担心我可能会错过依赖关系,并且我正在寻找最简单的方法来隔离测试git树,以确保git索引(“暂存”)中的内容实际上可以编译/运行他们自己的。

我的代码依赖关系存在于我执行“ git add”的文件系统中,因此简单的编译和运行测试无法保证如果将树(或暂存区)检出到干净的文件系统上,则我签入的内容不会编译/运行。

我可以有一个连续的构建,可以在提交后进行检查,但是我不希望在以后不得不修补的历史记录中没有任何错误的提交。因此,我想要一种创建隔离环境的方法,该环境包括树的检出以及索引/临时区域。

我考虑过的一件事是两次使用git stash,即:

  1. 调用“ git stash”将文件保存在索引中
  2. 以某种方式获取未跟踪文件的列表,“ git add”所有这些文件,保存新的存储
  3. 删除所有以前未跟踪的文件
  4. 恢复原始存储
  5. 现在,我应该拥有一个干净的环境,该环境只有已签入的代码以及可以编译和测试的登台区域中的代码。
  6. 完成后,我将还原未跟踪文件的存储,然后对其进行取消跟踪,以使我保持原先的位置。

(这些未跟踪的文件可能有用,但不一定要我检查到存储库中的内容-例如eclipse项目)。

不过,我有一种过度设计一个简单问题的感觉。

git testing commit pre-commit

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

在C#中以管理员权限启动流程

我必须使用System.Diagnostics.Process.Start()启动命令行程序并以管理员身份运行它.

此操作也将每天由计划任务运行.

c# administrator process.start

8
推荐指数
2
解决办法
3万
查看次数

为什么这个JavaScript函数会返回:"0:0function toString(){[native code]}"?

我从这个站点获取了以下函数并将其插入到我的代码中,以显示基于毫秒参数的用户友好时间字符串.

为什么这个功能不起作用?

    function getTimeFromMillis(millis)
    {

        milliSecs = millis;

        msSecs = (1000)
        msMins = (msSecs * 60)
        msHours = (msMins * 60)
        numHours = Math.floor(milliSecs/msHours)
        numMins = Math.floor((milliSecs - (numHours * msHours)) / msMins)
        numSecs = Math.floor((milliSecs - (numHours * msHours) - (numMins * msMins))/ msSecs)


        if (numSecs < 10){
          numSecs = "0" + numSecs.toString
        }
        if (numMins < 10){
          numMins = "0" + numMins.toString
        }

        resultString = numHours + ":" + numMins + ":" + numSecs     
        return resultString; …
Run Code Online (Sandbox Code Playgroud)

javascript time string-formatting

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

Zend CSRF保护令牌在Chrome中不起作用

所以这是我用来创建表单对象的方法:

protected function _getForm($form, $action = null)
{
    require_once(APPLICATION_PATH.'/modules/'.$this->_request->getModuleName().'/forms/'.$form.'.php');
    $form = new $form();
    if (null !== $action) {
        $form->setAction($action);
    }

    $csrfNamespace = new Zend_Session_Namespace('Tokens');
    if (false === isset($csrfNamespace->csrfToken)) {
        $csrfNamespace->csrfToken = $this->_helper->randomString();
    }
    $csrfToken = new Zend_Form_Element_Hidden('csrf_token');
    $csrfToken->setValue($csrfNamespace->csrfToken)
              ->addValidator(new My_Validator_CSRF())
              ->removeDecorator('HtmlTag')
              ->removeDecorator('Label'); 
    $form->addElement($csrfToken);

    return $form;
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在创建一个随机字符串标记并向表单添加My_Validator_CSRF()验证器.这是验证器:

<?php
class My_Validator_CSRF extends Zend_Validate_Abstract
{
    const TOKEN_NOT_SET = 'notSet';
    const TOKEN_INVALID = 'invalid';

    protected $_messageTemplates = array(
        self::TOKEN_NOT_SET => "'%value%' cannot be compared to anything, token has not been generated",
        self::TOKEN_INVALID => …
Run Code Online (Sandbox Code Playgroud)

php zend-framework

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

在不触发hashchange事件的情况下更改哈希

我正在使用哈希来动态加载内容.为了使后退按钮工作,我正在捕获哈希变化.但是有时我需要更改散列而不触发散列更改功能(例如,当页面被重定向到服务器端时,我需要在内容返回后更新散列.)

我提出的最佳解决方案是取消绑定hashchange事件,进行更改然后重新绑定它.但是,由于这是异步发生的,我发现它重新绑定太快并仍然捕获哈希更改.

我目前的解决方案非常糟糕:在setTimeout中重新绑定.有没有人有更好的主意?

    $(window).unbind( 'hashchange', hashChanged);
    window.location.hash  = "!" + url;
    setTimeout(function(){
        $(window).bind( 'hashchange', hashChanged);
    }, 100);
Run Code Online (Sandbox Code Playgroud)


编辑:
Amir Raminfar的建议促使我找到一个不需要超时的解决方案.我添加了一个类变量

_ignoreHashChange = false;
Run Code Online (Sandbox Code Playgroud)

当我想静默更改哈希时,我这样做:

_ignoreHashChange = true;
window.location.hash  = "!" + url;
Run Code Online (Sandbox Code Playgroud)

并且散列更改事件执行此操作:

function hashChanged(event){
    if(_ignoreHashChange === false){
        url = window.location.hash.slice(2);
        fetchContent(url);
    }
    _ignoreHashChange = false;
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery

49
推荐指数
2
解决办法
2万
查看次数

23
推荐指数
3
解决办法
6650
查看次数

运行时异常,递归太深

我转换的伪代码这里到C#,并让它递归地重复10000次.但是我StackOverflow Exception经历了一次C#运行时错误9217.我怎么能阻止这个?

编辑如果它对任何人有帮助,这里是代码:

    private double CalculatePi(int maxRecursion)
    {
        return 2 * CalculatePi(maxRecursion, 1);
    }

    private double CalculatePi(int maxRecursion, int i)
    {
        if (i >= maxRecursion)
            return 1;
        return 1 + i / (2.0 * i + 1) * CalculatePi(maxRecursion, i + 1);
    }

    double pi = CalculatePi(10000); // 10,000 recursions
Run Code Online (Sandbox Code Playgroud)

EDIT2所以每个人似乎都同意我需要将其转换为迭代...任何人都可以提供一些代码吗?我似乎无法编写任何有效的迭代代码......

编辑感谢Paul Rieck的这个答案,我测试了它,它的工作原理如下:

    private static double CalculatePi(int maxRecursion)
    {
        double result = 1;
        for (int i = maxRecursion; i >= 1; …
Run Code Online (Sandbox Code Playgroud)

c# recursion exception

8
推荐指数
2
解决办法
4675
查看次数

在struct中作为数组大小变量

我在我的程序中实现了一个文件的结构,但对于结构中的一些数组,我不知道它的大小.数组的大小存储在另一个变量中,但在填充结构之前它是未知的.

struct Vertex {
    float x;
    float y;
    float z;
};
struct myFile {
    ulong nVertices;
    Vertex vertices[nVertices];
};
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误:"错误C2065:'nVertices':未声明的标识符".

c arrays data-structures

9
推荐指数
2
解决办法
6690
查看次数

匿名空的未标记的类,结构,联合和枚举

!免责声明!:请注意,我在谈论无标记的声明.我知道这是一个非正式的术语,我的意思是声明不是typedef而且它不声明匿名类型的对象.在这些情况下,一切都很清楚.

问题1:
以下哪一项是格式良好的C++程序?(多项选择)

//One
int main(){
   struct{}; //or class{}; should be the same
}
//Two  
int main(){
   enum{}; 
}
//Three
int main(){
   union{}; 
}
Run Code Online (Sandbox Code Playgroud)

备注:
MSVC9.0接受全部三个.在第一,它发出警告.在第二和第三位,我们得到0错误和0警告.在线漫画只接受三号,第一和第二号无法编译,并带有诊断消息"声明未声明任何内容".如果在第二个中,匿名枚举包含至少一个枚举器,则getau编译器正确地接受第二个枚举.

如果comeau编译器是正确的,这是标准行为,那么我看到它有些不一致.我能理解为什么第一名应该被拒绝.我也理解为什么第二号应该被拒绝(没有声明),但在这种情况下,第三号也应该被拒绝.如果第三个不应该被拒绝,那么我在第一个看到的唯一区别是,一个无趣的联盟成员的范围是外部范围.但是枚举的情况也是如此,因此,我的主张是,如果第三个被接受,那么第二个应该被接受.

问题2:
如果结果是正确的,我在上述判断中缺少哪些考虑因素?

PS我已经写了一封电子邮件给了我的支持.我会在收到答案后立即发布答案.

c++ anonymous-types language-lawyer

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

将布尔条件作为参数传递

我有这些

def MsgBox1_YesChosen(sender,e):
    if e.Key != "A": function0() 
    else: 
        function1()
        function2()
        function3()

def MsgBox1_NoChosen(sender,e):
    if e.Key == "A": function0() 
    else: 
        function1()
        function2()
        function3()
Run Code Online (Sandbox Code Playgroud)

两个def可以合并在一起吗?它们之间的唯一区别是 "==" , "!="

python

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