Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取与文件修订相关联的日期和说明-Java API Performance_Api_Perforce_Java - Fatal编程技术网

获取与文件修订相关联的日期和说明-Java API Performance

获取与文件修订相关联的日期和说明-Java API Performance,api,perforce,java,Api,Perforce,Java,我正在尝试编写一个方法,该方法将文件路径和修订号作为参数,并返回与修订相关联的日期。我的代码工作正常(虽然很慢),但是,当我把一个大于51的修订号放进去时,输出会被弄乱 输入 String [] filePaths= {"//file/x/y/strings/somefile.csv"}; p4Client.getDateAssociatedWithFileRevision(filePaths, 52); public List<IFileSpec> getIFileSpecLis

我正在尝试编写一个方法,该方法将文件路径和修订号作为参数,并返回与修订相关联的日期。我的代码工作正常(虽然很慢),但是,当我把一个大于51的修订号放进去时,输出会被弄乱

输入

String [] filePaths= {"//file/x/y/strings/somefile.csv"};
p4Client.getDateAssociatedWithFileRevision(filePaths, 52);
public List<IFileSpec> getIFileSpecList(String file) {
        List<IFileSpec> fileList = null;
        try {
            fileList = iServer.getDepotFiles(
                        FileSpecBuilder.makeFileSpecList(new String[] {file}), false);  //Get list of file(s) in path
        }
        catch(Exception e){e.printStackTrace();}
        return fileList;
     }
输出-这应该只有一行…

Rev number: 2 :: Revision Date: Wed Aug 24 23:48:42 BST 2005

Rev number: 52 :: Revision Date: Wed Aug 24 23:52:53 BST 2005

Rev number: 51 :: Revision Date: Sat Aug 20 02:01:59 BST 2005
getDateAssociatedWithFileRevision

public Date getDateAssociatedWithFileRevision(String [] filePath, int revisionNumber) {

        List<IFileSpec> fileList = null;
        Map<IFileSpec,List<IFileRevisionData>> fileRevisionData = null;
        String currentFile = null;
        Date revisionDate = null;

        try 
        {
            String file = filePath[0] + "#" + revisionNumber;
            currentFile = file;
            fileList = getIFileSpecList(file);  //Get list of file(s) in path

            for(IFileSpec fileSpec: fileList)
            {
                if(file.toString() == null)
                {
                    System.out.println("\"" + currentFile +"\"" + " does not exist...");
                    break;
                }
                fileRevisionData = fileSpec.getRevisionHistory(0, true,false,true,false);
                int i = 0;
                for(List<IFileRevisionData> revisionData : fileRevisionData.values()) {
                    revisionDate = revisionData.get(0).getDate();
                    int revision = revisionData.get(0).getRevision();
                    System.out.println("Rev number: " +revision +" :: " + "Revision Date: " + revisionDate);
                    System.out.println(i);
                    i++;
                }

            }
        }
        catch(Exception e){e.printStackTrace();}
        return revisionDate;  
     }
public Date getDateAssociatedWithFileRevision(String [] filePath, int revisionNumber) {

        List<IFileSpec> fileList = null;
        Map<IFileSpec,List<IFileRevisionData>> fileRevisionData = null;
        String currentFile = null;
        Date revisionDate = null;

        try 
        {
            String file = filePath[0] + "#" + revisionNumber;
            currentFile = file;
            fileList = getIFileSpecList(file);  //Get list of file(s) in path

            for(IFileSpec fileSpec: fileList)
            {
                if(file.toString() == null)
                {
                    System.out.println("\"" + currentFile +"\"" + " does not exist...");
                    break;
                }
                fileRevisionData = fileSpec.getRevisionHistory(0, true,false,true,false);
                for(List<IFileRevisionData> revisionData : fileRevisionData.values()) {
                    int revision = revisionData.get(0).getRevision();
     -------------> if(revision.equals(revisionNumber))
                    {
                        revisionDate = revisionData.get(0).getDate();

                        System.out.println("Rev number: " +revision +" :: " + "Revision Date: " + revisionDate);
                        break;

                    }
                }

            }
        }
        catch(Exception e){e.printStackTrace();}
        return revisionDate;  
     }
public Date getdateassociated with filerevision(字符串[]filePath,int-revisionNumber){
List fileList=null;
Map fileRevisionData=null;
字符串currentFile=null;
日期修订日期=空;
尝试
{
字符串文件=文件路径[0]+“#”+修订号;
currentFile=文件;
fileList=getIFileSpecList(file);//获取路径中的文件列表
用于(IFileSpec文件规范:文件列表)
{
if(file.toString()==null)
{
System.out.println(“\”“+currentFile+”\”“+”不存在…);
打破
}
fileRevisionData=fileSpec.getRevisionHistory(0,真,假,真,假);
int i=0;
对于(列出修订数据:fileRevisionData.values()){
revisionDate=revisionData.get(0.getDate();
int revision=revisionData.get(0.getRevision();
System.out.println(“版本号:“+修订+”:“+”修订日期:“+修订日期”);
系统输出打印LN(i);
i++;
}
}
}
catch(异常e){e.printStackTrace();}
返回修订日期;
}
GetIFileSpecList

String [] filePaths= {"//file/x/y/strings/somefile.csv"};
p4Client.getDateAssociatedWithFileRevision(filePaths, 52);
public List<IFileSpec> getIFileSpecList(String file) {
        List<IFileSpec> fileList = null;
        try {
            fileList = iServer.getDepotFiles(
                        FileSpecBuilder.makeFileSpecList(new String[] {file}), false);  //Get list of file(s) in path
        }
        catch(Exception e){e.printStackTrace();}
        return fileList;
     }
public List getIFileSpecList(字符串文件){
List fileList=null;
试一试{
fileList=iServer.getDepotFiles(
FileSpecBuilder.makeFileSpecList(新字符串[]{file}),false);//获取路径中的文件列表
}
catch(异常e){e.printStackTrace();}
返回文件列表;
}
编辑

String [] filePaths= {"//file/x/y/strings/somefile.csv"};
p4Client.getDateAssociatedWithFileRevision(filePaths, 52);
public List<IFileSpec> getIFileSpecList(String file) {
        List<IFileSpec> fileList = null;
        try {
            fileList = iServer.getDepotFiles(
                        FileSpecBuilder.makeFileSpecList(new String[] {file}), false);  //Get list of file(s) in path
        }
        catch(Exception e){e.printStackTrace();}
        return fileList;
     }

刚刚发现集成后输出变得一团糟,现在只需要找到一种方法来处理它们。

我通过添加一个if语句(标记在下面)只返回了我想要的日期。我不知道这个解决方案有多优雅。。。欢迎提出任何意见

getDateAssociatedWithFileRevision

public Date getDateAssociatedWithFileRevision(String [] filePath, int revisionNumber) {

        List<IFileSpec> fileList = null;
        Map<IFileSpec,List<IFileRevisionData>> fileRevisionData = null;
        String currentFile = null;
        Date revisionDate = null;

        try 
        {
            String file = filePath[0] + "#" + revisionNumber;
            currentFile = file;
            fileList = getIFileSpecList(file);  //Get list of file(s) in path

            for(IFileSpec fileSpec: fileList)
            {
                if(file.toString() == null)
                {
                    System.out.println("\"" + currentFile +"\"" + " does not exist...");
                    break;
                }
                fileRevisionData = fileSpec.getRevisionHistory(0, true,false,true,false);
                int i = 0;
                for(List<IFileRevisionData> revisionData : fileRevisionData.values()) {
                    revisionDate = revisionData.get(0).getDate();
                    int revision = revisionData.get(0).getRevision();
                    System.out.println("Rev number: " +revision +" :: " + "Revision Date: " + revisionDate);
                    System.out.println(i);
                    i++;
                }

            }
        }
        catch(Exception e){e.printStackTrace();}
        return revisionDate;  
     }
public Date getDateAssociatedWithFileRevision(String [] filePath, int revisionNumber) {

        List<IFileSpec> fileList = null;
        Map<IFileSpec,List<IFileRevisionData>> fileRevisionData = null;
        String currentFile = null;
        Date revisionDate = null;

        try 
        {
            String file = filePath[0] + "#" + revisionNumber;
            currentFile = file;
            fileList = getIFileSpecList(file);  //Get list of file(s) in path

            for(IFileSpec fileSpec: fileList)
            {
                if(file.toString() == null)
                {
                    System.out.println("\"" + currentFile +"\"" + " does not exist...");
                    break;
                }
                fileRevisionData = fileSpec.getRevisionHistory(0, true,false,true,false);
                for(List<IFileRevisionData> revisionData : fileRevisionData.values()) {
                    int revision = revisionData.get(0).getRevision();
     -------------> if(revision.equals(revisionNumber))
                    {
                        revisionDate = revisionData.get(0).getDate();

                        System.out.println("Rev number: " +revision +" :: " + "Revision Date: " + revisionDate);
                        break;

                    }
                }

            }
        }
        catch(Exception e){e.printStackTrace();}
        return revisionDate;  
     }
public Date getdateassociated with filerevision(字符串[]filePath,int-revisionNumber){
List fileList=null;
Map fileRevisionData=null;
字符串currentFile=null;
日期修订日期=空;
尝试
{
字符串文件=文件路径[0]+“#”+修订号;
currentFile=文件;
fileList=getIFileSpecList(file);//获取路径中的文件列表
用于(IFileSpec文件规范:文件列表)
{
if(file.toString()==null)
{
System.out.println(“\”“+currentFile+”\”“+”不存在…);
打破
}
fileRevisionData=fileSpec.getRevisionHistory(0,真,假,真,假);
对于(列出修订数据:fileRevisionData.values()){
int revision=revisionData.get(0.getRevision();
------------->if(修订号等于(修订号))
{
revisionDate=revisionData.get(0.getDate();
System.out.println(“版本号:“+修订+”:“+”修订日期:“+修订日期”);
打破
}
}
}
}
catch(异常e){e.printStackTrace();}
返回修订日期;
}

工作太多。采用这个命令行思想(“p4文件将为您获取该信息,并进行解析”),让Performce为您完成数据的连接。然后用Java实现它

% p4 -Ztag files //guest/jeff_bowles/scripts/0228devbranch.html
... depotFile //guest/jeff_bowles/scripts/0228devbranch.html
... rev 2
... change 4421
... action edit
... type ktext
... time 1093044566

% p4 -Ztag files //guest/jeff_bowles/scripts/0228devbranch.html#1
... depotFile //guest/jeff_bowles/scripts/0228devbranch.html
... rev 1
... change 4420
... action add
... type ktext
... time 1093042787