composer / composer/satis

Satis fails to build if package is moved within SVN respository

Open
#310 2 comments 0 reactions 0 assignees View on GitHub
support
Dominant language
PHP
Stars
3.3k
Forks
530
Avg merge
6h 53m
Merged PRs (30d)
13

Description

I have some project in a SVN repository. The directory structure looks like this:

```
$svn-root/project/
- trunk
- composer.json
- ...
- branches (empty)
- tags (empty)
```

Now I created the folder `$svn-root/sub/`, and moved `$svn-root/project/` into `sub/`, using `svn mv project/ sub/` and committing afterwards. Now, the revision is XXX. I updated my satis configuration file to contain the new path `$svn-root/sub/project`.

But now, I can't update my satis repository anymore (even after deleting the outputs and caches), because satis tries to download the `composer.json` at the revision when it was last changed, which was before the directory move, but from the new location.

If the `composer.son` was last changed in revision YYY, satis executes this command:

```
Executing command (CWD): svn cat --non-interactive --username '...' --password '...' '$svn-root/sub/project/trunk/composer.json@YYY'
```

This fails, since in revision YYY the file is still located at `$svn-root/project/trunk/composer.json`.

Contributor guide

Open the contributing guide

Research direction

Start by tracing how Satis reads the configured SVN path and builds the `svn cat` command shown in the report. Reproduce the move from `$svn-root/project` to `$svn-root/sub/project` and verify that updating the repository succeeds when the file's last-change revision predates the move.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.