apache / apache/maven-scm

[SCM-841] Support --force-interactive option introduced with SVN 1.8

Open
#1,067 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
104
Forks
189
Avg merge
17h 46m
Merged PRs (30d)
6

Description

**[Konrad Windszus](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=kwin)** opened **[SCM-841](https://issues.apache.org/jira/browse/SCM-841?redirect=false)** and commented

With SVN 1.8 the additional option `--force-interactive` has been introduced with this commit: http://svn.apache.org/viewvc?view=revision&revision=1424037.
This option is not documented at http://svnbook.red-bean.com/en/1.8/svn.ref.svn.html. But the CLI exposes the following (via `svn st --help`

```
--non-interactive : do no interactive prompting (default is to prompt
only if standard input is a terminal device)
--force-interactive : do interactive prompting even if standard input
is not a terminal device
```

It seems that it always runs by default in non-interactive mode even with `useNonInteractive` set to false (https://maven.apache.org/scm/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svn-commons/svn-settings.html) when being triggered from the maven release plugin, therefore with `mvn release:prepare` you might see the following issue

```
[INFO] --- maven-release-plugin:2.5.1:prepare (default-cli) @ xxx ---
[INFO] Resuming release from phase 'scm-commit-release'
[INFO] Checking in modified POMs...
[INFO] Executing: /bin/sh -c cd && svn commit --file /var/folders/rm/vlg2h6m16mb0f65djmnb12xr0000gq/T/maven-scm-1099976641.commit --targets /var/folders/rm/vlg2h6m16mb0f65djmnb12xr0000gq/T/maven-scm-3840927493290123998-targets
[INFO] Working directory:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.664 s
[INFO] Finished at: 2017-02-05T10:58:28+00:00
[INFO] Final Memory: 14M/247M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.1:prepare (default-cli) on project xxx: Unable to commit files
[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] svn: E215004: Authentication failed and interactive prompting is disabled; see the --force-interactive option
[ERROR] svn: E215004: Commit failed (details follow):
[ERROR] svn: E215004: No more credentials or we tried too many times.
[ERROR] Authentication failed
```

Even though SVN was triggered without the option `\-\-non-interactive` it still won't run in interactive mode due to the change in 1.8. Therefore the `svn-setttings.xml` should support to enable the new option `\-\-force-interactive` so that the SVN will interactively ask for the credentials (instead of being forced to pass that via `-Dusername and -Dpassword` when triggering the mvn goal).

---

**Affects:** 1.9.5

**Issue Links:**
- [SCM-402](https://issues.apache.org/jira/browse/SCM-402) scm:checkin doesn't work on OS X 10.5 Leopard

- [SCM-1011](https://issues.apache.org/jira/browse/SCM-1011) Do not set --non-interactive for SVN provider by default

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the SVN settings implementation associated with the referenced svn-settings.xml and the SVN provider command construction. Check how useNonInteractive currently affects command options, then add coverage for enabling --force-interactive and verify the generated SVN command supports interactive credential prompting.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.