some more information the git command that it runs is
git -C "C:\pharo5win\new-qline"��
This is run in the method MCFileTreeGitRemoteRepository>>runProcessWrapperGitCommand: anArrayOfStrings in: aDirectory.
It is stuck on the line:
��command waitForExit.
this wait for exit has no timeout to it and you wait forever. I found out on windows the user interrupt is alt .�� Just like the Mac ;-)
I have no error in the error stream at all.
From the source tree tool the command should look more like this:
git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master
and then followed by the -C "C:\pharo5win\new-qline"
git -C "C:\pharo5win\new-qline" -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master��
However doing this from a command line it asks for the users password like thus
C:\pharo5win\New-Qline>git -C "C:\pharo5win\new-qline" -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master
to avoid the password prompt you can do this
you can also replace -v --tags origin master:master ��with --all as well
in my case it would look like
OR
and that works with out the system waiting for a password.
I notice that there is a class that has the username password for bit bucket in the method MCGitBasedNetworkRepository >> siteUsername: username sitePassword: pass
"MCBitbucketRepository siteUsername: '' sitePassword: ''"
"MCGitHubRepository siteUsername: '' sitePassword: ''"
self
siteUsername: username;
sitePassword: pass
I tried setting it up with the username and password in the url for the remote repository and no luck.
the class MCFileTreeGitRemoteRepository should override the getPull and gitPush so as to include the url with the site name and password or there might be a need for a different creation class for the bitbucket remote repositories. However it is a standrad git command to be able to include the username password in the url.
when one does a pull as well there is a hang as well for the same reasons.
I am not attempting to hack this at the moment because I can use source tree to do the commits and pushes and pulls. I do think though since we have those commands available on the remote repos��and people can mark it private requiring a username password.
Also we should consider a repository configuration that specifys the SSH kaey and then run the command in the context of SSH. this would eliminate the username password issue and it is much more secure.
SO since you are more experienced than I in this area of the code, I should ask how should we go about fixing the issue. Also were should I report this issue as well?
running the command from a cmd line produced the following:
C:\pharo5win\New-Qline>git -C "C:\pharo5win\new-qline"
usage: git [--version] [--help] [-C <path>] [-c name=value]
�� �� �� �� �� ��[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
�� �� �� �� �� ��[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
�� �� �� �� �� ��[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
�� �� �� �� �� ��<command> [<args>]
The most commonly used git commands are:
�� ��add �� �� �� ��Add file contents to the index
�� ��bisect �� �� Find by binary search the change that introduced a bug
�� ��branch �� �� List, create, or delete branches
�� ��checkout �� Checkout a branch or paths to the working tree
�� ��clone �� �� ��Clone a repository into a new directory
�� ��commit �� �� Record changes to the repository
�� ��diff �� �� �� Show changes between commits, commit and working tree, etc
�� ��fetch �� �� ��Download objects and refs from another repository
�� ��grep �� �� �� Print lines matching a pattern
�� ��init �� �� �� Create an empty Git repository or reinitialize an existing one
�� ��log �� �� �� ��Show commit logs
�� ��merge �� �� ��Join two or more development histories together
�� ��mv �� �� �� �� Move or rename a file, a directory, or a symlink
�� ��pull �� �� �� Fetch from and integrate with another repository or a local branch
�� ��push �� �� �� Update remote refs along with associated objects
�� ��rebase �� �� Forward-port local commits to the updated upstream head
�� ��reset �� �� ��Reset current HEAD to the specified state
�� ��rm �� �� �� �� Remove files from the working tree and from the index
�� ��show �� �� �� Show various types of objects
�� ��status �� �� Show the working tree status
�� ��tag �� �� �� ��Create, list, delete or verify a tag object signed with GPG
'git help -a' and 'git help -g' lists available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
C:\pharo5win\New-Qline>
So according to the help the command it self is formulated incorrectly.
runProcessWrapperGitCommand: anArrayOfStrings in: aDirectory
"Enclose all parameters with double quotes to protect."
| r aCommandString |
aCommandString := String
streamContents: [ :stream |��
anArrayOfStrings
do: [ :e |��
stream
nextPut: $";
nextPutAll: e;
nextPutAll: '" ' ] ].
(Smalltalk at: #ProcessWrapper ifAbsent: [ self error: 'Please load ProcessWrapper' ])
ifNotNil: [ :pW |��
| command |
command := pW new
useStdout;
useStderr;
startWithCommand:
self gitCommand , ' -C "'
,
(MCFileTreeFileUtils current directoryPathString: aDirectory)
, '" ' , aCommandString;
yourself.
command waitForExit.
self assert: command isRunning not.
r := command upToEnd.
command exitCode > 0
ifTrue:
[��
| errorString |
errorString := command errorUpToEnd.
errorString notEmpty
ifTrue:
[ MCFileTreeGitError new signal: 'Git error: ' , errorString ].
r := '' ] ].
^ r