# git-mv: fully detect 'directory moved into itself'

4 messages from 2005-11-27 to 2005-11-28. Participants: Josef Weidendorfer, Matthias Urlichs, Junio C Hamano.
Thread: https://gitlist.dev/t/2690

## Josef Weidendorfer, 2005-11-27 21:06

Subject: git-mv: fully detect 'directory moved into itself'
Message-ID: <200511272206.43113.Josef.Weidendorfer@gmx.de>
URL: https://gitlist.dev/e/200511272206.43113.Josef.Weidendorfer%40gmx.de

```
This gives a better error message when trying to move a directory
into some subdirectory of itself; ie. no real bug fix: renaming
already failed before, but with a strange "invalid argument".

Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>
---

 git-mv.perl |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

applies-to: 5d83477de7a407ab0ef183c6676114e1a507cf86
29b01f820bf24c4b697765a2a117c880a730b205
diff --git a/git-mv.perl b/git-mv.perl
index ac19876..8d294d6 100755
--- a/git-mv.perl
+++ b/git-mv.perl
@@ -108,7 +108,7 @@ while(scalar @srcArgs > 0) {
 	}
     }
     
-    if (($bad eq "") && ($src eq $dstDir)) {
+    if (($bad eq "") && ($dst =~ /^$src\//)) {
 	$bad = "can not move directory '$src' into itself";
     }
 
---
0.99.9.GIT

```

## Matthias Urlichs, 2005-11-28 06:54

Subject: Re: git-mv: fully detect 'directory moved into itself'
Message-ID: <pan.2005.11.28.06.54.32.809941@smurf.noris.de>
URL: https://gitlist.dev/e/pan.2005.11.28.06.54.32.809941%40smurf.noris.de
In-Reply-To: <200511272206.43113.Josef.Weidendorfer@gmx.de>

```
Hi, Josef Weidendorfer wrote:

> +    if (($bad eq "") && ($dst =~ /^$src\//)) {

That should be

> +    if (($bad eq "") && ($dst =~ /^\Q$src\E\//)) {

otherwise you will mistakenly match "foo-bar" with "foo.bar".

-- 
Matthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
 - -
If people drank ink instead of Schlitz, they'd be better off.
		-- Edward E. Hippensteel

[What brand of ink?  Ed.]

```

## Josef Weidendorfer, 2005-11-28 09:15

Subject: [PATCH] git-mv: fully detect 'directory moved into itself'
Message-ID: <200511281015.15188.Josef.Weidendorfer@gmx.de>
URL: https://gitlist.dev/e/200511281015.15188.Josef.Weidendorfer%40gmx.de
In-Reply-To: <pan.2005.11.28.06.54.32.809941@smurf.noris.de>

```
This gives a better error message when trying to move a directory
into some subdirectory of itself; ie. no real bug fix: renaming
already failed before, but with a strange "invalid argument".

Signed-off-by: Josef Weidendorfer <Josef.Weidendorfer@gmx.de>

---

This is a corrected version.

On Monday 28 November 2005 07:54, Matthias Urlichs wrote:
> Hi, Josef Weidendorfer wrote:
> 
> > +    if (($bad eq "") && ($dst =~ /^$src\//)) {
> 
> That should be
> 
> > +    if (($bad eq "") && ($dst =~ /^\Q$src\E\//)) {
> 
> otherwise you will mistakenly match "foo-bar" with "foo.bar".
> 

Ah, thanks.
You never end learning.

Josef


 git-mv.perl |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

applies-to: 5d83477de7a407ab0ef183c6676114e1a507cf86
3c1ed8adaff3f7492ef2afdb5585ae7412a02817
diff --git a/git-mv.perl b/git-mv.perl
index ac19876..bfe3c29 100755
--- a/git-mv.perl
+++ b/git-mv.perl
@@ -108,7 +108,7 @@ while(scalar @srcArgs > 0) {
 	}
     }
     
-    if (($bad eq "") && ($src eq $dstDir)) {
+    if (($bad eq "") && ($dst =~ /^\Q$src\E\//)) {
 	$bad = "can not move directory '$src' into itself";
     }
 
---
0.99.9.GIT

```

## Junio C Hamano, 2005-11-28 09:24

Subject: Re: [PATCH] git-mv: fully detect 'directory moved into itself'
Message-ID: <7vbr05xgzp.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vbr05xgzp.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <200511281015.15188.Josef.Weidendorfer@gmx.de>

```
Josef Weidendorfer <Josef.Weidendorfer@gmx.de> writes:

> This is a corrected version.
>
> On Monday 28 November 2005 07:54, Matthias Urlichs wrote:
>> Hi, Josef Weidendorfer wrote:
>> 
>> > +    if (($bad eq "") && ($dst =~ /^$src\//)) {
>> 
>> That should be
>> 
>> > +    if (($bad eq "") && ($dst =~ /^\Q$src\E\//)) {
>> 
>> otherwise you will mistakenly match "foo-bar" with "foo.bar".
>
> Ah, thanks.
> You never end learning.

Why not use $safesrc you already have for this exact purpose?

```
