読者です 読者をやめる 読者になる 読者になる

It's raining cats and dogs.

無駄なことなんてないはず

svn:ignoreを再帰的に調べる

subversion

とあるプロジェクトのsvn:ignoreがどこで設定されているかを調べる必要があったので調べました。
再帰的にignoreを設定するためには

http://d.hatena.ne.jp/tell-k/20090806/1249575564

このブログに書いてあるとおりにしたらできるのだけど、反対にディレクトリ各所で設定されたignoreを一覧でみるためにはどうしたらいいのかと。
-Rでpropsetできるならpropgetも-Rじゃね?という発想でhelpをみたらあったあった。

$ svn help propget
propget (pget, pg): Print the value of a property on files, dirs, or revisions.
usage: 1. propget PROPNAME [TARGET[@REV]...]
       2. propget PROPNAME --revprop -r REV [TARGET]

  1. Prints versioned props. If specified, REV determines in which
     revision the target is first looked up.
  2. Prints unversioned remote prop on repos revision.
     TARGET only determines which repository to access.

  By default, this subcommand will add an extra newline to the end
  of the property values so that the output looks pretty.  Also,
  whenever there are multiple paths involved, each property value
  is prefixed with the path with which it is associated.  Use the
  --strict option to disable these beautifications (useful when
  redirecting a binary property value to a file, but available only
  if you supply a single TARGET to a non-recursive propget operation).

Valid options:
  -v [--verbose]           : print extra information
  -R [--recursive]         : descend recursively, same as --depth=infinity
  --depth ARG              : limit operation by depth ARG ('empty', 'files',
                             'immediates', or 'infinity')
  -r [--revision] ARG      : ARG (some commands also take ARG1:ARG2 range)
                             A revision argument can be one of:
                                NUMBER       revision number
                                '{' DATE '}' revision at start of the date
                                'HEAD'       latest in repository
                                'BASE'       base rev of item's working copy
                                'COMMITTED'  last commit at or before BASE
                                'PREV'       revision just before COMMITTED
  --revprop                : operate on a revision property (use with -r)
  --strict                 : use strict semantics
  --xml                    : output in XML
  --changelist [--cl] ARG  : operate only on members of changelist ARG

Global options:
  --username ARG           : specify a username ARG
  --password ARG           : specify a password ARG
  --no-auth-cache          : do not cache authentication tokens
  --non-interactive        : do no interactive prompting
  --trust-server-cert      : accept SSL server certificates from unknown
                             certificate authorities without prompting (but only
                             with '--non-interactive')
  --config-dir ARG         : read user configuration files from directory ARG
  --config-option ARG      : set user configuration option in the format:
                                 FILE:SECTION:OPTION=[VALUE]
                             For example:
                                 servers:global:http-library=serf

というわけでプロジェクトルートとかで

$ svn propget -R svn:ignore .

なんてやると

$ svn propget -R svn:ignore .

log - *

tmp - *

cache - *

ってな感じで表示される。
なにこれ超便利じゃん