Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- If WScript.arguments.count = 0 Then
- Set Shell = WScript.CreateObject("WScript.Shell")
- ' demande d'installation de la regedit du client :
- reponse = msgbox("Voulez-installer la clé de registre ?", vbQuestion+vbYesNo, "Installation")
- If reponse = 6 Then
- Shell.RegWrite "HKEY_CLASSES_ROOT\Directory\shell\StartMerge\" ,"Lancer un merge"
- Shell.RegWrite "HKEY_CLASSES_ROOT\Directory\shell\StartMerge\command\", "wscript """ & WScript.ScriptFullName & """ ""%1"""
- End If
- ' Fermeture du script
- WScript.Quit
- End If
- ' Récuperation du repertoire de destination
- workDir = WScript.arguments(0)
- ' demande de validation du client :
- reponse = msgbox("Voulez-vous lancer un merge sur " & workDir & " ?", vbQuestion+vbYesNo, "Merge")
- ' Yes : 6 / No : 7
- If reponse = 6 Then
- Set Shell = WScript.CreateObject("WScript.Shell")
- ' Mise a jour du repo
- Shell.Run("cmd /c svn revert " & workDir & " -R"), 1, True
- Shell.Run("cmd /c svn update " & workDir), 1, True
- ' Récuperation des infos du repo
- Set workSvnInfo = Shell.Exec("cmd /c svn info " & workDir)
- ' wait until finished
- Do While workSvnInfo.Status <> 1
- WScript.Sleep 100
- Loop
- ' Lecture des données
- Do While Not workSvnInfo.StdOut.AtEndOfStream
- strText = workSvnInfo.StdOut.ReadLine()
- If InStr(strText, "Repository Root:") > 0 Then
- RepoRoot=Replace(strText, "Repository Root: ", "")
- End If
- If InStr(strText, "URL:") > 0 Then
- RepoURL=Replace(strText, "URL: ", "")
- End If
- Loop
- ' Selection des branches a mergé
- If InStr(RepoURL, "/branches/preprod") > 0 Then
- RepoDest = RepoRoot & "/branches/devel"
- ElseIf InStr(RepoURL, "/trunk") > 0 Then
- RepoDest = RepoRoot & "/branches/preprod"
- Else
- WScript.Quit
- End If
- 'WScript.echo "Merge de " & RepoURL & " vers " & RepoDest
- ' Lancement du merge
- Set workSvnMerge = Shell.Exec("cmd /c svn merge --ignore-ancestry " & RepoURL & "@HEAD " & RepoDest & "@HEAD " & workDir)
- ' wait until finished
- Do While workSvnMerge.Status <> 1
- WScript.Sleep 100
- Loop
- ' Envoi de la demande de commit
- tortoisePath = Shell.ExpandEnvironmentStrings("%PROGRAMFILES%") & "\TortoiseSVN\bin\TortoiseProc.exe"
- Set workSvnCommit = Shell.Exec(tortoisePath & " /command:commit /closeonend:2 /path:" & workDir)
- ' wait until finished
- Do While workSvnCommit.Status <> 1
- WScript.Sleep 100
- Loop
- ' demande de validation du client :
- reponse = msgbox("Voulez-vous restaurer le repertoire ?", vbQuestion+vbYesNo, "Merge")
- If reponse = 6 Then
- Shell.Run("cmd /c svn revert " & workDir & " -R"), 1, True
- End If
- End If
Add Comment
Please, Sign In to add comment