From 62b0dc4853d3c8147c5ec164e9aba452f95259b8 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Mon, 29 Aug 2016 00:10:21 -0700 Subject: Web editor: fix cannot create new file in subdirectory --- models/repo_editor.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'models/repo_editor.go') diff --git a/models/repo_editor.go b/models/repo_editor.go index c80bf05991..31b94f631e 100644 --- a/models/repo_editor.go +++ b/models/repo_editor.go @@ -96,6 +96,7 @@ func (repo *Repository) UpdateRepoFile(doer *User, opts UpdateRepoFileOptions) ( } localPath := repo.LocalCopyPath() + oldFilePath := path.Join(localPath, opts.OldTreeName) filePath := path.Join(localPath, opts.NewTreeName) os.MkdirAll(path.Dir(filePath), os.ModePerm) @@ -106,8 +107,9 @@ func (repo *Repository) UpdateRepoFile(doer *User, opts UpdateRepoFileOptions) ( } } - // If update a file, move if file name change. - if len(opts.OldTreeName) > 0 && len(opts.NewTreeName) > 0 && opts.OldTreeName != opts.NewTreeName { + // Ignore move step if it's a new file under a directory. + // Otherwise, move the file when name changed. + if com.IsFile(oldFilePath) && opts.OldTreeName != opts.NewTreeName { if err = git.MoveFile(localPath, opts.OldTreeName, opts.NewTreeName); err != nil { return fmt.Errorf("git mv %s %s: %v", opts.OldTreeName, opts.NewTreeName, err) } -- cgit v1.2.3