小编Sco*_*ott的帖子

更改SVN消息编辑器

因此,我的同事认为有必要进入我的开发框并进行一些代码更改,然后将他的工作提交给颠覆.我从来没有设置提交消息编辑器,突然间,有一天我忘了添加-m句柄,显然他将默认编辑器设置为emacs.

由于我不知道第一件事emacs并且更喜欢vim自己,如何在SVN命令vim已经设置之后将其更改为默认编辑器?我删除了.subversion主目录下的目录,它仍然提示我.

svn

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

AngularJS:跟踪同时上传的每个文件的状态

在按下提交按钮,文件的数组($scope.files,可以少为一个文件,多达用户希望)通过被提交FormData,并XMLHttpRequest在我的角度功能$scope.uploadFiles:

$scope.uploadFiles = function() {
    for (var i in $scope.files) {
        var form = new FormData();
        var xhr = new XMLHttpRequest;

            // Additional POST variables required by the API script
        form.append('destination', 'workspace://SpacesStore/' + $scope.currentFolderUUID);
        form.append('contenttype', 'idocs:document');
        form.append('filename', $scope.files[i].name);
        form.append('filedata', $scope.files[i]);
        form.append('overwrite', false);

        xhr.upload.onprogress = function(e) {
            // Event listener for when the file is uploading
            $scope.$apply(function() {
                var percentCompleted;
                if (e.lengthComputable) {
                    percentCompleted = Math.round(e.loaded / e.total * 100);
                    if (percentCompleted < …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

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

避免让subversion修改Linux文件权限.

我的所有代码库都存储在一个subversion存储库中,我将其分散在负载均衡的Apache Web服务器中,从而可以轻松检查代码,运行更新,并将我的代码无缝地开发到生产环境中.

我确信有一个简单的方法(除了在每次结账时执行脚本),其中一个不便之处就是在使用subversion更新或检出的文件上设置(返回)Linux权限.我们的安全团队已经将它设置了OwnerGroup在设置的httpd.conf文件,以及内的所有目录documentRoot的700收到的权限,所有非可执行文件(例如*.PHP,*.smarty,*.PNG)收到的Linux权限600,所有可执行文件接收700(例如*.sh,*.pl,*.py).所有文件必须具有所有者和组apache:apache,以便httpd服务读取,因为只有文件所有者设置为通过权限进行访问.

每次我运行一个svn update,或者svn co,即使文件可能没有被创建(即svn update),我发现文件的所有权设置为运行svn命令的帐户,通常是文件权限被设置为除了它们之前的东西(即更新之前的.htm文件是600,但之后svn update,它被设置为755,甚至是777).

绕过subversion尝试更新文件权限和所有权的最简单方法是什么?有没有什么可以在svn客户端或Linux服务器上完成以保留原始文件权限?我正在运行RHEL5(现在只有几个选择实例).

linux svn file-permissions

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

Express:访问路线中的app.set()设置

在Express中,我开始相信可以通过在我的主app.js文件中执行类似以下操作来创建全局应用程序设置:

var express = require('express'),
    ...
    login = require('./routes/login');

var app = express();

app.configure(function(){
  ...
  app.set('ssoHostname', 'login.hostname.com');
  ...
});
...
app.get('/login', login.login);
...
Run Code Online (Sandbox Code Playgroud)

现在./routes/login.js,我想访问app.settings.ssoHostname,但如果我尝试运行任何类似的东西(根据:如何在快递js中使用app.set()设置变量):

...
exports.login = function(req, res) {
  var currentURL = 'http://' + req.header('host') + req.url;
  if (!req.cookies.authCookie || !User.isValidKey(req.cookies.authCookie)) {
    res.redirect(app.settings.ssoHostname + '/Login?returnURL=' + encodeURIComponent(currentURL));
  }
};
...
Run Code Online (Sandbox Code Playgroud)

它不承认app:

ReferenceError: app is not defined
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 我采用的app.set()用于全局设置的方法是否经常以"正确"的方式重复使用,如果是这样的话......
  2. 如何在路线中访问这些设置?
  3. 如果不app.set()经常使用全局设置,我将如何在路线中设置和获取自定义设置?

node.js express

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

AngularJS HTML5模式降级为整页重新加载而不是hashbang

通过在AngularJS中启用HTML5模式,该$location服务将重写URL以从中删除hashbang.这是一个很棒的功能,可以帮助我完成我的应用程序,但是它的回退到hashbang模式有一个问题.我的服务需要身份验证,我被迫使用我的应用程序的外部身份验证机制.如果用户尝试使用其中的hashbang转到我的应用的URL,它将首先将它们重定向到身份验证页面(除非成功通过身份验证,否则不会触摸我的服务),然后将它们重定向回我的应用程序.由于哈希标签只能从客户端看到,所以当它们到达我的服务器时,它将会丢失路由的所有部分.一旦对它们进行了身份验证,它们就可以重新输入URL并且它将起作用,但是它会在一个初始时间内导致用户体验中断.

我的问题是,有没有办法从不$location.html5Mode(true)支持浏览器的全页重新加载的后备,跳过完全在AngularJS中的hashbang方法?

我正在瞄准的可用实现的最佳比较将是诸如在github.com上浏览文件夹之类的东西.如果浏览器支持在不启动页面刷新的情况下重写URL,则页面将异步加载必要的部分.如果浏览器不支持,则当用户单击文件夹时,将发生整页刷新.使用AngularJS代替使用hashbang模式可以实现吗?

angularjs

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

为什么必须在文件的底部声明模块的导出?

我有以下编辑代码:

module.exports = {
  read: read,
  write: write,
};

var read = function(parameters, config, next) {
  /* <snip> */
};

var write = function(parameters, config, next) {
  /* <snip> */
};
Run Code Online (Sandbox Code Playgroud)

如果我在require()别处转到此文件,它将崩溃节点并说所需的对象没有方法readwrite.变量提升不会拉动上面的功能modules.export = { ... };吗?

node.js hoisting

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

使用"var that = this"了解Javascript范围

假设我在对象中有以下属性方法:

  onReady: function FlashUpload_onReady()
  {
     Alfresco.util.Ajax.jsonGet({
       url: Alfresco.constants.PROXY_URI + "org/app/classification",
       successCallback: {
         fn: function (o) {
           var classButtonMenu = [],
               menuLabel, that = this;

           var selectButtonClick = function (p_sType, p_aArgs, p_oItem) {
               var sText = p_oItem.cfg.getProperty("text");
               that.classificationSelectButton.set("label", sText);
           };

           for (var i in o.json.items) {
             classButtonMenu.push({
               text: o.json.items[i].classification,
               value: o.json.items[i].filename,
               onClick: {fn: selectButtonClick}
             });
           }

           this.classificationSelectButton = new YAHOO.widget.Button({
             id: this.id + "-appClassification",
             type: "menu",
             label: classButtonMenu[0].text,
             name: "appClassification",
             menu: classButtonMenu,
             container: this.id + "-appClassificationSection-div"
           });
         },
         scope: this
       }, …
Run Code Online (Sandbox Code Playgroud)

javascript

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

SVG图像未显示在某些Web服务器上

我在某些服务器上的html文件中显示.svg图像时遇到问题.这让我感到困惑,因为我认为浏览器决定是否渲染svg图像,但浏览器保持不变.我正在使用以下字符串来显示它们:

<img src='path/to/image.svg' alt='image' /> 
Run Code Online (Sandbox Code Playgroud)

在一台RHEL6服务器上,它显示在另一台RHEL5服务器上,它不会.httpd的版本分别为2.2.15-9.el6和2.2.3-53.el5.网络浏览器与Google Chrome 12.0.742.122保持一致.服务器之间是否有什么东西可以决定svg图像是否被渲染?

错误日志不报告任何内容,访问日志为.svg文件提供状态200和304.

apache svg

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

了解 SQL 查询中大括号和“OJ”的使用

我办公室的一位前员工构建了一个 PHP 脚本,该脚本在 SQL 查询中使用大括号。我知道它通常适用于封装数组变量之类的事情,但此查询在字符串中没有任何 PHP 变量。FROM有人可以澄清查询部分中生成的表实际上需要大括号的含义以及 OJ 代表什么吗?

SELECT
  DISTINCT ra.folder_id,
  pd.id,
  f.name,
  pd.descriptor_text
FROM
  { 
    OJ permission_descriptors pd
    LEFT JOIN permission_descriptor_users pdu
    ON pdu.descriptor_id = pd.id
  }
  role_allocations ra,
  folders f
WHERE
  pdu.descriptor_id IS NULL AND
  pd.id = ra.permission_descriptor_id AND
  pd.id != 1
  ra.folder_id = f.id
ORDER BY
  ra.folder_id
Run Code Online (Sandbox Code Playgroud)

mysql

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

Bash:如何在5.4G SQL转储中轻松编辑一行

我们遇到的问题是我们需要处理恢复丢失的数据(在主 - 主复制设置上不正确地使用maatkit),而我正在尝试导入数据库的旧转储.问题是,在文件的顶部,它显式指定了数据库(mysqldump是使用--all-databases选项运行的),我需要将该数据库更改为其他内容,以便我可以在其中另外使用比较.该行写道:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `dms` /*40100 DEFAULT CHARACTER SET latin1 */
Run Code Online (Sandbox Code Playgroud)

由于转储的大小,我在vi中打开文件是不成功的,并且由于它将如何逐行读取任何模式匹配而使用sed有点犹豫.将sql转储中的上述行更改为最简单,最有效的方法是什么?

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `dms_old` /*40100 DEFAULT CHARACTER SET latin1 */
Run Code Online (Sandbox Code Playgroud)

或者只是使用一些mysql黑魔法将其导入数据库dms_old

mysql bash

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