@@ -1792,8 +1792,13 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error
1792
1792
1793
1793
if err = watchRepo (sess , doer .ID , repo .ID , true ); err != nil {
1794
1794
return fmt .Errorf ("watchRepo: %v" , err )
1795
- } else if err = transferRepoAction (sess , doer , owner , repo ); err != nil {
1796
- return fmt .Errorf ("transferRepoAction: %v" , err )
1795
+ }
1796
+
1797
+ // Remove watch for organization.
1798
+ if owner .IsOrganization () {
1799
+ if err = watchRepo (sess , owner .ID , repo .ID , false ); err != nil {
1800
+ return fmt .Errorf ("watchRepo [false]: %v" , err )
1801
+ }
1797
1802
}
1798
1803
1799
1804
// Rename remote repository to new path and delete local copy.
@@ -1824,23 +1829,21 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error
1824
1829
}
1825
1830
1826
1831
// ChangeRepositoryName changes all corresponding setting from old repository name to new one.
1827
- func ChangeRepositoryName (u * User , oldRepoName , newRepoName string ) (err error ) {
1828
- oldRepoName = strings .ToLower (oldRepoName )
1832
+ func ChangeRepositoryName (doer * User , repo * Repository , newRepoName string ) (err error ) {
1829
1833
newRepoName = strings .ToLower (newRepoName )
1830
1834
if err = IsUsableRepoName (newRepoName ); err != nil {
1831
1835
return err
1832
1836
}
1833
1837
1834
- has , err := IsRepositoryExist (u , newRepoName )
1835
- if err != nil {
1836
- return fmt .Errorf ("IsRepositoryExist: %v" , err )
1837
- } else if has {
1838
- return ErrRepoAlreadyExist {u .Name , newRepoName }
1838
+ if err := repo .GetOwner (); err != nil {
1839
+ return err
1839
1840
}
1840
1841
1841
- repo , err := GetRepositoryByName ( u . ID , oldRepoName )
1842
+ has , err := IsRepositoryExist ( repo . Owner , newRepoName )
1842
1843
if err != nil {
1843
- return fmt .Errorf ("GetRepositoryByName: %v" , err )
1844
+ return fmt .Errorf ("IsRepositoryExist: %v" , err )
1845
+ } else if has {
1846
+ return ErrRepoAlreadyExist {repo .Owner .Name , newRepoName }
1844
1847
}
1845
1848
1846
1849
// Change repository directory name. We must lock the local copy of the
@@ -1849,14 +1852,14 @@ func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error)
1849
1852
repoWorkingPool .CheckIn (com .ToStr (repo .ID ))
1850
1853
defer repoWorkingPool .CheckOut (com .ToStr (repo .ID ))
1851
1854
1852
- newRepoPath := RepoPath (u .Name , newRepoName )
1855
+ newRepoPath := RepoPath (repo . Owner .Name , newRepoName )
1853
1856
if err = os .Rename (repo .RepoPath (), newRepoPath ); err != nil {
1854
1857
return fmt .Errorf ("rename repository directory: %v" , err )
1855
1858
}
1856
1859
1857
1860
wikiPath := repo .WikiPath ()
1858
1861
if com .IsExist (wikiPath ) {
1859
- if err = os .Rename (wikiPath , WikiPath (u .Name , newRepoName )); err != nil {
1862
+ if err = os .Rename (wikiPath , WikiPath (repo . Owner .Name , newRepoName )); err != nil {
1860
1863
return fmt .Errorf ("rename repository wiki: %v" , err )
1861
1864
}
1862
1865
}
@@ -1868,7 +1871,7 @@ func ChangeRepositoryName(u *User, oldRepoName, newRepoName string) (err error)
1868
1871
}
1869
1872
1870
1873
// If there was previously a redirect at this location, remove it.
1871
- if err = deleteRepoRedirect (sess , u . ID , newRepoName ); err != nil {
1874
+ if err = deleteRepoRedirect (sess , repo . OwnerID , newRepoName ); err != nil {
1872
1875
return fmt .Errorf ("delete repo redirect: %v" , err )
1873
1876
}
1874
1877
0 commit comments