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
Pushing to https://sglazier...@bitbucket.org/sglazier456/new-qline.git
Password for 'https://sglazier...@bitbucket.org':

to avoid the password prompt you can do this

git -C "C:\pharo5win\new-qline" -c diff.mnemonicprefix=false -c
core.quotepath=false push
https://username:passw...@myrepository.biz/file.git -v --tags origin
master:master

you can also replace -v --tags origin master:master  with --all as well

in my case it would look like

git -C "C:\pharo5win\new-qline" -c diff.mnemonicprefix=false -c
core.quotepath=false push
https://sglazier456:my_passw...@bitbucket.org/sglazier456/new-qline.git -v
--tags origin master:master

OR
git -C "C:\pharo5win\new-qline" -c diff.mnemonicprefix=false -c
core.quotepath=false push
https://sglazier456:my_passw...@bitbucket.org/sglazier456/new-qline.git -all

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


Kind Regards,

Sean Glazier


On Mon, Jul 25, 2016 at 1:01 AM, Sean Glazier <sglazier...@gmail.com> wrote:

> Yes,
>
> I created in Bitbucket a repository named New-QLine. I created
> aBaselinOfNewQLine which just has stubs. I created 2 Packages.
> New-Qline and New-Qline-Tests each of these have 3 tags underneath and no
> classes defined since I wanted to ensure I would have no loading issue and
> so I can verify committing code and then doing a push and then I also
> wanted to verify doing a Pull. The picture below is clipped from my pharo5
> image.
>
> In the window Respository:sglazier456/new-qline.git [master] (Remote Git)
> shown below. The code at this point has been committed successfully and now
> I want to Push it to the repository.  Once I hit the Push button the image
> freezes. I can press the x button on the main Pharo 5 window and I get the
> dialog do you want to quit with out saving.
>
> I am assuming that the push is using a git command. I am not familiar with
> the Pharo 5 keyboard shortcuts. I tried control b along with some others in
> hopes of interrupting this process and bringing the image back and being
> able to debug. However, I was unsuccessful in that. I was thinking that I
> might need to supply a setting so the ssh session can use the privateKey I
> generated and then I can be verified and the command continues.
>
> I am not sure what is going on yet. I thought I would ask to see if it is
> something simple I am missing.
>
> If you need to I can email you my privateKey so you can try it against the
> same repository I am using.
> g...@bitbucket.org:sglazier456/new-qline.git
>
> Partial sceen shot showing the repository window is below.
>
> [image: Inline image 1]
>
> Thank you for your help and if you can point me to where I need to added a
> break point I can provide more information :-)
>
>
> Kind Regards,
>
> Sean Glazier
>
>
> On Mon, Jul 25, 2016 at 12:37 AM, Dale Henrichs <
> dale.henri...@gemtalksystems.com> wrote:
>
>> I'd be interested in making this work ... could you supply additional
>> details about the problems you are seeing perhaps we can fix the problems?
>>
>> Dale
>>
>>
>> On 7/24/16 6:42 PM, Sean P. DeNigris wrote:
>>
>>> Dale Henrichs-3 wrote
>>>
>>>> Yes, Metacello supports bitbucket:// repos...
>>>>
>>> N.B. IIRC I wasn't able to use it for my private projects because it
>>> doesn't
>>> work with private repos accessed via SSH
>>>
>>>
>>>
>>> -----
>>> Cheers,
>>> Sean
>>> --
>>> View this message in context:
>>> http://forum.world.st/Can-GitHubcello-be-used-against-BitBucket-tp4907386p4907660.html
>>> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>

Reply via email to