首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AccuRev:如何列出托管文件?

AccuRev:如何列出托管文件?
EN

Stack Overflow用户
提问于 2014-04-09 22:32:00
回答 3查看 283关注 0票数 0

我需要查看在两个流之间添加或删除了哪些文件。最明显的方法是在每条溪流中使用“”。但这不是GIT,我也没有看到类似的命令。所以今天:

代码语言:javascript
复制
for f in $(find * -type f);do
    accurev stat "$f"
done | \
    fgrep -v '(external)' | \
    awk '{print $1}' > .list

如果有更好的办法,在这里应该很清楚和容易找到:

代码语言:javascript
复制
http://www.accurev.com/download/docs/5.7.0_books/AccuRev_5_7_User_CLI.pdf

但事实并非如此。帮助?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-23 17:42:39

因为这两个答案都没有解决这个问题,所以我最终想出了一个脚本来完成真正需要的事情。"accurev lsfiles“是非常需要的。

代码语言:javascript
复制
#! /bin/bash

declare -r progpid=$$
declare -r progdir=$(cd $(dirname $0) >/dev/null && pwd)
declare -r prog=$(basename $0)
declare -r program="$progdir/$prog"
declare -r usage_text=' [ <directory> ... ]
If no directory is specified, "." is assumed'

die() {
    echo "$prog error:  $*"
    exec 1>/dev/null 2>&1
    kill -9 $progpid
    exit 1
} 1>&2

usage() {
    test $# -gt 0 && {
        exec 1>&2
        echo "$prog usage error:  $*"
    }
    printf "USAGE:  $prog %s\n" "$usage_text"
    exit $#
}

init() {
    shift_ct=$#
    tmpd=$(mktemp -d ${TMPDIR:-/tmp}/ls-XXXXXX)
    test -d "$tmpd" || die "mktemp -d does not work"
    exec 4> ${tmpd}/files
    trap "rm -rf '$tmpd'" EXIT
    prune_pat=

    while :
    do
        test $# -eq 0 && break
        test -f "$1" && break
        [[ "$1" =~ -.* ]] || break
        case "X$1" in
            X-p )
                prune_pat+="${2}|"
                shift 2 || usage "missing arg for '-p' option"
                ;;

            X-p* )
                prune_pat+="${1#-p}"
                shift
                ;;

            X-x* )
                set -x
                tput reset 1>&2
                PS4='>${FUNCNAME:-lsf}> '
                shift
                ;;

            X-* )
                usage "unknown option:  $1"
                ;;

            * )
                break
                ;;
        esac
    done

    (( shift_ct -= $# ))
    test ${#prune_pat} -gt 0 && \
        prune_pat='(^|/)('${prune_pat%|}')$'
}

chkdir() {
    declare list=$(exec 2> /dev/null
        for f in "$@"
        do ls -d ${f}/* ${f}/.*
        done | \
            grep -v -E '.*/\.\.*$' )

    for f in $(accurev stat ${list} | \
        grep -v -F '(external)' | \
        awk '{print $1}' | \
        sed 's@^/*\./@@')
    do
        test ${#prune_pat} -gt 0 && [[ $f =~ ${prune_pat} ]] && continue

        if test -d "$f"
        then chkdir "$f"
        elif test -f "$f" -o -L "$f"
        then echo "$f" 1>&4
        fi
    done
}

init ${1+"$@"}
(( shift_ct > 0 )) && shift ${shift_ct}
test $# -eq 0 && set -- .
chkdir "$@"
exec 4>&-
sort -u ${tmpd}/files

它有点过头了,但我有一个样板,我总是用在我的脚本。

票数 0
EN

Stack Overflow用户

发布于 2014-04-10 11:01:06

如果要查看两个流之间的差异,请运行以下命令: accurev diff -a -v "Stream1“-V "Stream2”

票数 0
EN

Stack Overflow用户

发布于 2014-04-10 12:32:42

随着命令行问题的回答,下面是如何通过AccuRev GUI进行同样的操作。

  1. 选择一个动态流、工作区或快照。
  2. 右击并选择“按文件显示Diff”
  3. 选择不同的动态流、工作区或快照。 您将收到两个选项之间不同的文件列表,是的,您可以在动态流、工作区和快照之间混合匹配。 然后您可以选择任何文件并选择“显示差异”来查看两个文件之间的差异。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22975206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档