it does have two drawbacks -- its directory diff tool is *horrible* ( i won't bore you with the gory details but mercurial piped through beyond compare is beautiful and light years ahead. if i didn't already have so much in perforce i *might* consider moving over to that instead. )
the point of this post though is that with perforce, in order to add a directory tree's worth of files, i keep wanting to type:
p4 add ...but if you do you get the (unhelpful) message:
Can't add filenames with wildcards [@#%*] in them.perforce rather than adding files recursively thinks you are trying to add a file named "...".
i don't know why this particular use case isn't handled in perforce ( though i can imagine most commands probably operate in the server's namespace so it would take some tiny bit of extra work. )
i'm used to a microsoft system called source depot in which a similar syntax does work. the command is therefore hard to unlearn. i find myself re-inventing the right command whenever i start a new sub/project.
at any rate: as a public service ;) and for future reference: on windows the equivalent is:
for /R [dir] %i in (*.*) do p4 add %iwhere, optionally, "dir" is the base of the files to add.