Version control 如何查找在clearcase分支下修改的文件

Version control 如何查找在clearcase分支下修改的文件,version-control,clearcase,Version Control,Clearcase,我修改并签入了分支下的一堆文件。现在我需要得到我修改过的文件列表。是否有脚本可以执行此操作?应该可以帮助您找到给定分支上至少有一个版本的任何元素(文件) 以下内容将查找分支上的所有文件 有关更多示例,请参阅或“” 报告补充说: 它给了我一个带有@和其他字符的残缺文件名。有没有可能通过正常路径到达 诚然,这样的命令会给您一些类似的信息(例如): 要仅获取路径,有两种解决方案: 1/查找具有右分支的元素(而不是版本): cleartool find . -type f -ele "brtype(m

我修改并签入了分支下的一堆文件。现在我需要得到我修改过的文件列表。是否有脚本可以执行此操作?

应该可以帮助您找到给定分支上至少有一个版本的任何元素(文件)

以下内容将查找分支上的所有文件

有关更多示例,请参阅或“”


报告补充说:


它给了我一个带有@和其他字符的残缺文件名。有没有可能通过正常路径到达

诚然,这样的命令会给您一些类似的信息(例如):

要仅获取路径,有两种解决方案:

1/查找具有右分支的元素(而不是版本):

cleartool find . -type f -ele "brtype(mybranch)" -print
(注意用
-ele
替换
-branch

这将使:

.\.checkstyle@@
.\.classpath@@
.\.classycle@@
.\.fbprefs@@
.\.pmd@@
但你仍然有“丑陋”的一面

2/将find与exec指令结合使用,exec指令描述找到的元素:

多行格式,便于阅读:

cleartool find . -type f -ele "brtype(mybranch)" \
  -exec "cleartool descr -fmt \"%En\n\" \"%CLEARCASE_PN%\""
请注意,所有“内部”双引号都需要转义

%En
将为您提供找到的元素的名称

.\.checkstyle
.\.classpath
.\.classycle
.\.fbprefs
.\.pmd
.\.project
.\.settings\dico.txt

上述命令将给出所有修改的文件,特别是
branch(myBranch)

但是,如果要查找特定用户在特定日期修改的文件,则需要以下命令:

cleartool find . -version "{created_since(28-APRIL-2011.23:00:00) \
                           && (!created_since(29-APRIl-2011.23:00:00)) \
                           && brtype(BR_test) \
                           && created_by(p723029)}" \
                 -exec "cleartool describe -fmt \nName\t\t:\040%En\nResponsible\t:\040%u\nDate\t\t:\040%d\nComment\t\t:\040%c\n %CLEARCASE_XPN%" \
                 -print >> D:\test.xls
(为了复制/粘贴的目的,在一个巨大的行中:)


使用以下脚本

   #!/bin/sh

   display()
   {
       echo "usage: $0 branchname -v vobs"
       echo "  branchname: optional, if absent uses the current view-name"
       echo "  -v vobs: optional, if absent uses default vob list"
   }

  if [ $# -gt 1 ]; then
      if [ $1 == -v ]; then
          branch=`basename $CLEARCASE_ROOT`
          VOB_LIST=${@:2:($# - 1)}

      elif [ $2 == -v ]; then
          branch=$1
          VOB_LIST=${@:3:($# - 2)}

      else
          display
         exit 1
      fi

  else
      VOB_LIST="/vobs/abc /vobs/def /vobs/ghi /vobs/jkl /vobs/mno"

      if [ $# -eq 1 ]; then
         if [ $1 == -h ]; then
              display
              exit 0
          else
              branch=$1
          fi
      else
         branch=`basename $CLEARCASE_ROOT`
      fi
  fi

  echo "Searching for files of branch <$branch> in following vobs:"
  echo "$VOB_LIST"
  echo "================================================================"

  cleartool find $VOB_LIST -all -version "version(.../$branch/LATEST)" -print
#/垃圾箱/垃圾箱
显示()
{
echo“用法:$0 branchname-v VOB”
echo“branchname:可选,如果不存在,则使用当前视图名称”
echo“-v vob:可选,如果不存在,则使用默认vob列表”
}
如果[$#-gt 1];然后
如果[$1==-v];然后
branch=`basename$CLEARCASE\u ROOT`
VOB#U列表=${@:2:($#-1)}
elif[$2==-v];然后
分行=1美元
VOB#U列表=${@:3:($#-2)}
其他的
显示
出口1
fi
其他的
VOB_LIST=“/vobs/abc/vobs/def/vobs/ghi/vobs/jkl/vobs/mno”
如果[$#-eq 1];然后
如果[$1==-h];然后
显示
出口0
其他的
分行=1美元
fi
其他的
branch=`basename$CLEARCASE\u ROOT`
fi
fi
echo“在以下VOB中搜索分支的文件:”
回显“$VOB_列表”
回声“===============================================================================================================================================================================================================================================================================================================================================================
cleartool查找$VOB_列表-全部-版本“版本(…/$branch/LATEST)”-打印
将其保存在名为ctlsbr的文件中,并使用vob中的该文件查找修改后的文件列表

谢谢,
Amit

find命令是最好的源代码。为了解决OPs关于使用@返回“残废”名称以及之后的所有分支和版本信息的问题,可以添加“-nxn”选项以不提供此信息。这比将元素搜索与exec指令结合起来格式化输出要容易得多

cleartool find . -type f -branch "brtype(mybranch)" -nxn -print
试试这个命令

cleartool find -avo -nxname -element '{brtype(branch_name)}' -print

它给了我一个带有@和其他字符的残缺文件名。可以使用普通路径获取吗?谢谢您的回答,但是我如何才能在指定文件夹下找到修改过的文件而不是vob。e、 g我需要找到修改过的文件\vob_name\sub1\sub2。我该怎么做?@sarat:只需替换“
ct find”中的“
”-按要查看的完整路径键入…
。有趣(+1)。我已尝试改进您答案的呈现方式,使您的命令的不同部分更加可见。这是本页上唯一对我有效的内容
cleartool find . -version "{created_since(28-APRIL-2011.23:00:00) && (!created_since(29-APRIl-2011.23:00:00))  && brtype(BR_test)  && created_by(p723029)}" -exec "cleartool describe -fmt \nName\t\t:\040%En\nResponsible\t:\040%u\nDate\t\t:\040%d\nComment\t\t:\040%c\n %CLEARCASE_XPN%" -print >> D:\test.xls
   #!/bin/sh

   display()
   {
       echo "usage: $0 branchname -v vobs"
       echo "  branchname: optional, if absent uses the current view-name"
       echo "  -v vobs: optional, if absent uses default vob list"
   }

  if [ $# -gt 1 ]; then
      if [ $1 == -v ]; then
          branch=`basename $CLEARCASE_ROOT`
          VOB_LIST=${@:2:($# - 1)}

      elif [ $2 == -v ]; then
          branch=$1
          VOB_LIST=${@:3:($# - 2)}

      else
          display
         exit 1
      fi

  else
      VOB_LIST="/vobs/abc /vobs/def /vobs/ghi /vobs/jkl /vobs/mno"

      if [ $# -eq 1 ]; then
         if [ $1 == -h ]; then
              display
              exit 0
          else
              branch=$1
          fi
      else
         branch=`basename $CLEARCASE_ROOT`
      fi
  fi

  echo "Searching for files of branch <$branch> in following vobs:"
  echo "$VOB_LIST"
  echo "================================================================"

  cleartool find $VOB_LIST -all -version "version(.../$branch/LATEST)" -print
cleartool find . -type f -branch "brtype(mybranch)" -nxn -print
cleartool find -avo -nxname -element '{brtype(branch_name)}' -print