2785 (not forFetch) and mode == "(push)": |
2785 (not forFetch) and mode == "(push)": |
2786 remotesList.append((name, url)) |
2786 remotesList.append((name, url)) |
2787 |
2787 |
2788 return remotesList |
2788 return remotesList |
2789 |
2789 |
|
2790 def gitGetRemoteUrl(self, repodir, remoteName): |
|
2791 """ |
|
2792 Public method to get the URL of a remote repository. |
|
2793 |
|
2794 @param repodir directory name of the repository |
|
2795 @type str |
|
2796 @param remoteName name of the remote repository |
|
2797 @type str |
|
2798 @return URL of the remote repository |
|
2799 @rtype str |
|
2800 """ |
|
2801 args = self.initCommand("remote") |
|
2802 args.append("get-url") |
|
2803 args.append(remoteName) |
|
2804 |
|
2805 output = "" |
|
2806 process = QProcess() |
|
2807 process.setWorkingDirectory(repodir) |
|
2808 process.start('git', args) |
|
2809 procStarted = process.waitForStarted(5000) |
|
2810 if procStarted: |
|
2811 finished = process.waitForFinished(30000) |
|
2812 if finished and process.exitCode() == 0: |
|
2813 output = str(process.readAllStandardOutput(), |
|
2814 Preferences.getSystem("IOEncoding"), |
|
2815 'replace').strip() |
|
2816 |
|
2817 return output |
|
2818 |
2790 def gitGetRemoteBranchesList(self, repodir, remote): |
2819 def gitGetRemoteBranchesList(self, repodir, remote): |
2791 """ |
2820 """ |
2792 Public method to get the list of a remote repository branches. |
2821 Public method to get the list of a remote repository branches. |
2793 |
2822 |
2794 @param repodir directory name of the repository (string) |
2823 @param repodir directory name of the repository (string) |
2906 args.append(remoteName) |
2935 args.append(remoteName) |
2907 args.append(newName) |
2936 args.append(newName) |
2908 |
2937 |
2909 self.startSynchronizedProcess(QProcess(), "git", args, |
2938 self.startSynchronizedProcess(QProcess(), "git", args, |
2910 workingDir=repodir) |
2939 workingDir=repodir) |
|
2940 |
|
2941 def gitChangeRemoteUrl(self, projectDir, remoteName, remoteUrl=""): |
|
2942 """ |
|
2943 Public method to change the URL of a remote repository. |
|
2944 |
|
2945 @param projectDir name of the project directory |
|
2946 @type str |
|
2947 @param remoteName name of the remote repository |
|
2948 @type str |
|
2949 @param remoteUrl URL of the remote repository |
|
2950 @type str |
|
2951 """ |
|
2952 # find the root of the repo |
|
2953 repodir = projectDir |
|
2954 while not os.path.isdir(os.path.join(repodir, self.adminDir)): |
|
2955 repodir = os.path.dirname(repodir) |
|
2956 if os.path.splitdrive(repodir)[1] == os.sep: |
|
2957 return |
|
2958 |
|
2959 if not remoteUrl: |
|
2960 remoteUrl = self.gitGetRemoteUrl(repodir, remoteName) |
|
2961 |
|
2962 from .GitChangeRemoteUrlDialog import GitChangeRemoteUrlDialog |
|
2963 dlg = GitChangeRemoteUrlDialog(remoteName, remoteUrl) |
|
2964 if dlg.exec_() == QDialog.Accepted: |
|
2965 name, url = dlg.getData() |
|
2966 if url != remoteUrl: |
|
2967 args = self.initCommand("remote") |
|
2968 args.append("set-url") |
|
2969 args.append(name) |
|
2970 args.append(url) |
|
2971 |
|
2972 self.startSynchronizedProcess(QProcess(), "git", args, |
|
2973 workingDir=repodir) |
|
2974 |
|
2975 def gitChangeRemoteCredentials(self, projectDir, remoteName, remoteUrl=""): |
|
2976 """ |
|
2977 Public method to change the user credentials of a remote repository. |
|
2978 |
|
2979 @param projectDir name of the project directory |
|
2980 @type str |
|
2981 @param remoteName name of the remote repository |
|
2982 @type str |
|
2983 @param remoteUrl URL of the remote repository |
|
2984 @type str |
|
2985 """ |
|
2986 # find the root of the repo |
|
2987 repodir = projectDir |
|
2988 while not os.path.isdir(os.path.join(repodir, self.adminDir)): |
|
2989 repodir = os.path.dirname(repodir) |
|
2990 if os.path.splitdrive(repodir)[1] == os.sep: |
|
2991 return |
|
2992 |
|
2993 if not remoteUrl: |
|
2994 remoteUrl = self.gitGetRemoteUrl(repodir, remoteName) |
|
2995 |
|
2996 from .GitRemoteCredentialsDialog import GitRemoteCredentialsDialog |
|
2997 dlg = GitRemoteCredentialsDialog(remoteName, remoteUrl) |
|
2998 if dlg.exec_() == QDialog.Accepted: |
|
2999 name, url = dlg.getData() |
|
3000 if url != remoteUrl: |
|
3001 args = self.initCommand("remote") |
|
3002 args.append("set-url") |
|
3003 args.append(name) |
|
3004 args.append(url) |
|
3005 |
|
3006 self.startSynchronizedProcess(QProcess(), "git", args, |
|
3007 workingDir=repodir) |
2911 |
3008 |
2912 def gitRemoveRemote(self, projectDir, remoteName): |
3009 def gitRemoveRemote(self, projectDir, remoteName): |
2913 """ |
3010 """ |
2914 Public method to remove a remote repository. |
3011 Public method to remove a remote repository. |
2915 |
3012 |