Skip to content

Commit 3c24fb4

Browse files
committed
feat(cmd[svn]): Fill out svn.info
1 parent d9d2cc4 commit 3c24fb4

1 file changed

Lines changed: 44 additions & 1 deletion

File tree

src/libvcs/cmd/svn.py

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -549,16 +549,59 @@ def import_(self, *args: Any, **kwargs: Any) -> str:
549549

550550
return self.run(["import", *local_flags])
551551

552-
def info(self, *args: Any, **kwargs: Any) -> str:
552+
def info(
553+
self,
554+
target: Optional[StrPath] = None,
555+
targets: Optional[Union[list[StrPath], StrPath]] = None,
556+
changelist: Optional[List[str]] = None,
557+
revision: Optional[str] = None,
558+
depth: DepthLiteral = None,
559+
incremental: Optional[bool] = None,
560+
recursive: Optional[bool] = None,
561+
xml: Optional[bool] = None,
562+
*args: Any,
563+
**kwargs: Any,
564+
) -> str:
553565
"""
554566
Wraps `svn info
555567
<https://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.info.html>`_.
556568
557569
Parameters
558570
----------
571+
targets : pathlib.Path
572+
`--targets ARG`: contents of file ARG as additional args
573+
xml : bool
574+
`--xml`, xml output
575+
revision : Union[RevisionLiteral, str]
576+
Number, '{ DATE }', 'HEAD', 'BASE', 'COMMITTED', 'PREV'
577+
depth :
578+
`--depth ARG`, Sparse checkout support, Optional
579+
incremental : bool
580+
`--incremental`, give output suitable for concatenation
559581
"""
560582
local_flags: list[str] = [*args]
561583

584+
if isinstance(target, pathlib.Path):
585+
local_flags.append(str(target.absolute()))
586+
elif isinstance(target, str):
587+
local_flags.append(target)
588+
589+
if revision is not None:
590+
local_flags.extend(["--revision", revision])
591+
if targets is not None:
592+
if isinstance(targets, Sequence):
593+
local_flags.extend(["--targets", *[str(t) for t in targets]])
594+
else:
595+
local_flags.extend(["--targets", str(targets)])
596+
if changelist is not None:
597+
local_flags.extend(["--changelist", *changelist])
598+
if recursive is True:
599+
local_flags.append("--recursive")
600+
if xml is True:
601+
local_flags.append("--xml")
602+
if incremental is True:
603+
local_flags.append("--incremental")
604+
562605
return self.run(["info", *local_flags])
563606

564607
def list(self, *args: Any, **kwargs: Any) -> str:

0 commit comments

Comments
 (0)