c#clearcase:如何编辑文件然后检查出来然后用保存的更改检查它?

时间:2011-08-08 16:09:48

标签: c# clearcase

我正在尝试以编程方式编辑已签入的文件,然后将其签出并保存在签入时所做的更改。然后使用保存的更改将其重新检入: 编辑 - > CheckOut - >保存 - >签入

尝试保存时,我遇到的问题是该文件无法识别文件夹中的文件,并认为它试图覆盖另一个文件。

    void checkOut(string sourcefile)
    {
        ClearCase.CCElement element = m_CC.get_Element(sourcefile);

        if (element != null)
        {
            ClearCase.CCVersion latestVersion = null;
            FileInfo fi = new FileInfo(sourcefile);

            latestVersion = element.get_Version();
            if (latestVersion != null)
            {
                ClearCase.CCBranch branch = latestVersion.Branch;
                ClearCase.CCCheckedOutFile file = latestVersion.CheckOut(ClearCase.CCReservedState.ccReserved, "", false, ClearCase.CCVersionToCheckOut.ccVersion_SpecificVersion, true, false);
                string path = file.ExtendedPath;
            }
        }
    }

    void checkIn(string sourcefile)
    {
        ClearCase.CCElement element = m_CC.get_Element(sourcefile);
        element.CheckedOutFile.CheckIn("", true, sourcefile, ClearCase.CCKeepState.ccRemove);
    }


    void excelEdit()
    {
      string fileName = Globals.ThisAddIn.Application.ActiveWorkbook.Name;

      //EDIT EXCEL FILE from (fileName)

      checkOut(fileName);
      Globals.ThisAddIn.Application.ActiveWorkbook.SaveAs(fileName);
      checkIn(fileName);
    }

4 个答案:

答案 0 :(得分:3)

如果您手动执行此操作,那么这不是您将要使用的过程,而不是我建议以编程方式执行的过程。

你应该首先检查文件(这会使它在磁盘上可写),编辑它,保存它,然后检查它IN(这将使它在磁盘上只读)。

您可能认为在Visual Studio中,您在签出之前就开始编辑,但实际上,Visual Studio会在您开始编辑时检查该文件。

答案 1 :(得分:2)

我的印象是ClearCase通过用新的可写副本替换当前的只读副本来检出文件。这可以解释你所看到的行为。

我建议您将文件复制到临时位置,修改副本,检出原始文件,复制已修改的临时文件并将其签入。

答案 2 :(得分:2)

注意:可以使用快照视图执行您想要的操作,您可以:

  • 更改只读属性
  • 编辑(使您的文件在此过程中被“劫持”)
  • checkout(将被劫持的版本与选项-use / hijack保持一致)
  • 检查
–use/hijack
  

指示结帐使用被劫持的文件作为签出版本   如果要检出的文件没有被劫持的对应文件,则会以静默方式忽略此选项。

当你想立即测试修改时,该过程是有意义的,而不必告诉每个人你正在修改所述文件:如果修改有效,那么你尝试签出,然后签入。

但是对于动态视图,这是不可能的(或者更难)。

因此,除非您有非常具体的理由在结帐前尝试修改,否则official process所描述的Steve更可取。

答案 3 :(得分:0)

如果ClearCase与TFS类似,您可能会将文件设置为ReadOnly,直到您结帐...

因此,您的流程实际上必须设置文件为只读 - >编辑 - >退房 - >保存 - >入住