Re: [git-users] Re: Trouble with the git-http-backend; Documentation unprecise

2015-05-25 Thread Matthias Lantsch
Of course, that was stupid of me :D
Nevertheless, I followed your advice and it does seem to almost work now, 
even though the new Problem does not have anything to do with the 
communication between all those scripts, that's working fine now.
Thanks for all of your help guys.

Am Mittwoch, 13. Mai 2015 13:28:48 UTC+2 schrieb Konstantin Khomoutov:

 On Tue, 12 May 2015 00:43:14 -0700 (PDT) 
 Matthias Lantsch alasar.go...@gmail.com javascript: wrote: 

  I'm sorry I forgot about the most important part: 
  setting the pth variable for the PATH_INFO 
  $pth = explode(GIT_DOCUMENT_ROOT, isset($_SERVER 
  ['REDIRECT_URL']) ? $_SERVER['REDIRECT_URL'] : '', 2); 
  $pth = array_pop($pth); 

 One problem with the way you're communicating your difficulties with us 
 is that you imply everyone is fluent in PHP, which is just wrong ;-) 


-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [git-users] moving a directory from one repo to another with commit history

2015-05-25 Thread Konstantin Khomoutov
On Sat, 23 May 2015 23:02:46 +0530
Kalpa Welivitigoda callka...@gmail.com wrote:

[...]
  Use the `git subtree` command [*].
  [...]
 
  To elaborate, a pseudocode (assuming a POSIX shell) is something
  like this:
 
$ cd repoB
$ git tag Bdir12 $(git subtree split dir1-2)
 
$ cd ../repoA
$ git fetch ../repoB Bdir12
$ git merge -s ours --no-commit Bdir12
$ git read-tree --prefix dir1/dir1-2 -u Bdir12
$ git commit --edit
 
 Thanks for all the support rendered. I tried the above method and it
 places the directory from repoB to the correct place on repoA. But if
 I log the commits for dir1-2 in repoA (git log dir1/dir1-2), it shows
 only the merging of the tag, not the individual commits for that
 particular directory. But if I do a git log from root of repoA, it
 shows all the commits. Is it possible to have the commits for dir1-2 ?

Given the merge commit, does

  $ git log that_merge_commit^2

show you the proper history line?

That ^2 thing selects the second parent of a commit, and in the
case of a simple merge (two parents) this is the side which has been
merged into -- that is, the tree extracted by `git subtree split`).

On the same note, does

  $ git log that_tag_produced_by_git_subtree

give you the history you're expecting to see?

I mean, we have to tell if you have a problem extracting the history
or the problem properly listing it (or some other problem).

I'd also recommend running

  $ gitk --all

or

  $ git log --all --graph --decorate --oneline

to see a neatly layed of overview of the commit graph in your repo.
In it, it should be easy to see if your merge commit actually has
two parents with the second one having a history extracted from the
source repo attached to it.

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[git-users] Need some advice on git setup -- development files must be run on the server

2015-05-25 Thread Chris Fillmore
Hello,

I've just started a position where we are not yet using version control at 
all. The team was previously just a single developer, and now there are 
three of us. I've used git before on teams, but not in an environment 
exactly like this, and I need some advice.

The code we are working on is a mix of BASIC and front end web languages. 
It is stored on a Red Hat server running a UniVerse 
http://www.rocketsoftware.com/products/rocket-universe database, and we 
use wIntegrate http://www.rocketsoftware.com/products/rocket-wintegrate 
to access and edit the code. wIntegrate downloads the code to our local 
machine, where we can edit it and then upload the files back to the server 
via FTP. In order to test our changes, the code MUST be running on the 
server -- it can't be run locally on our machines. The server in our office 
is not a production environment, it's a development environment. Testing 
and production servers operate in our clients' offices.

Naturally, we are looking to migrate to a version control platform.

Supposing I initialize a git repo in our development server where the code 
is. I imagine our workflow looking like this:

   - Team members clone the repo to local machines
   - Team members each create a branch and do their work
   - Team members push changes to the development server

Here's where I need advice. How do you go about testing the code in 
different git branches on the server?

I am imagining I putty into the server, checkout my branch, run the code. 
Is this possible? But what's to stop other team members from doing the 
same, at the same time? There are only three of us, we can communicate, but 
in principle I would prefer to have a better solution, if possible.

We debated the option of imaging the server to run on virtual machines 
locally on each team member's computer. But I'm not sure if this is 
feasible.

Any advice is greatly appreciated. Please let me know if I can provide more 
information.

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[git-users] Git http-backend shouldn't use Webdav

2015-05-25 Thread Matthias Lantsch
Hello community I have a problem with the new http-backend of git.
I have set up the git-http-backend to use the smart http version of git.
Authentification works fine, I can clone my repository over http and https 
as expected.
For testing purposes, GIT_SSL_NO_VERIFY and http.receivepack are both set 
to true.
But when I am trying to push, I get a 404 header back and a return code 22:
 PROPFIND /git/repo/test.git/ HTTP/1.1
User-Agent: git/1.9.5.msysgit.1
Host: 10.5.1.2
Accept: */*
Depth: 0
Content-Type: text/xml
Content-Length: 167
Expect: 100-continue
 HTTP/1.1 100 Continue
* We are completely uploaded and fine
* The requested URL returned error: 404 Not Found
* Closing connection 0
error: Cannot access URL https://10.5.1.2/git/repo/test.git/, return code 22
fatal: git-http-push failed
That of course had me confused, because PROPFIND is a Webdav call and I 
thought the http backend would only use smart http (webdav is not enabled 
on the server)
In an answer *here* 
http://serverfault.com/questions/180413/authentication-for-git-push-over-http 
it confirms that Webdav should actually not even be used. It also states 
that Webdav will be used as backup if the client receives a 403 header.
But my Access log as well as the trace do not show any sign of that.
Through my hook script I got a dump of the environement that is submitted 
to the script:
export GIT_PROJECT_ROOT='/theRealPathToTheGitRoot/gitroot/'
export GIT_HTTP_EXPORT_ALL=1
export PATH_INFO='/test.git/'
export GIT_COMMITTER_NAME=''
export GIT_COMMITTER_EMAIL=''
export REMOTE_USER='Test'
export REMOTE_ADDR='10.5.2.73'
export CONTENT_TYPE='text/xml'
export QUERY_STRING='req=git/repo/test.git/'
export REQUEST_METHOD='PROPFIND'
export HTTP_ACCEPT='*/*'
export CONTENT_LENGTH=167
The error log logging the error output of the git-http-backend contains 
that:
Status: 404 Not Found
Expires: Fri, 01 Jan 1980 00:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache, max-age=0, must-revalidate

Request not supported: '/theRealPathToTheGitRoot/gitroot/test.git/
Did I mess something up? I am sure that Webdav should not be required for 
the backend to work.
Environement information: 
Apache2.2
Client Git 1.9.x under Windows and Linux
Any help would be much appreciated :)
Matthias

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [git-users] Need some advice on git setup -- development files must be run on the server

2015-05-25 Thread Konstantin Khomoutov
On Mon, 25 May 2015 09:30:17 -0700 (PDT)
Chris Fillmore fillmore.ch...@gmail.com wrote:

[...]
 In order to test our changes, the code MUST be
 running on the server -- it can't be run locally on our machines. The
 server in our office is not a production environment, it's a
 development environment. Testing and production servers operate in
 our clients' offices.
[...]
- Team members push changes to the development server
 
 Here's where I need advice. How do you go about testing the code in 
 different git branches on the server?
 
 I am imagining I putty into the server, checkout my branch, run the
 code. Is this possible?

That depends on how do you define possible.
Supposedly you want to ask if it's possible to do the checkout my
branch, run the code bit, right?
The answer depends on what constraints the thing you're using to test
the code has.  I'm not familiar with neither of the two pieces of
technology you've cited so I can't tell for sure.
Surely if the thing has command-line interface so you can run it in
an SSH session and see its test run results somehow printed back, it is
possible.  If not, we need further details on how the thing is
supposed to be controlled when doing its test runs.

 But what's to stop other team members from
 doing the same, at the same time?

Again, suppose you have checked out some version of the code into some
directory on the server's file system.  Now suppose one of your
colleagues did the same with a *different* directory.  Does the thing
allow to run two tests on these different code bases at the same time?

If yes, the problem is solved.

If not, then, again, we need further info on that tool's constraints.
For instance, if it requires the code to always be located in a certain
directory and only allows a single run at any time, I'd solve the
testing problem using a simple CGI script which would receive
a commit hash as a parameter, create some lock file and flock() it,
check out the indicated version of the code, run the tests, delete the
lock file.  That would prevent any of you from running several tests in
parallel.

Certainly that's a poor man's solution, and you might look at a CI
system?  Sure, picking one and setting it properly so that it obeys
your tool's constraints might be harder than writing a brain-dead
solution I outlined above; YMMV.

[...]
 We debated the option of imaging the server to run on virtual
 machines locally on each team member's computer. But I'm not sure if
 this is feasible.

Uh, why not?  Only low-end x86 CPUs (those targetting fanless micro-ATX
etc) do not have support for hardware virtualization these days, and
you needn't run a server-class OS (you mentioned PuTTY so I suppose
your team's using Windows on your desktops) as there's VirtualBox.

And there's even no need to use virtualization on desktops as you can
just use KVM (or Xen or containers via LXC or Docker or any other
light-weight solution) on your server and SSH to these instances.

TL;DR
Given the description I'd vote for semi-automatic solution using a CGI
script because to me this appears to be the solution with the least
possible cost (both implementation-wise and support-wise).
But I'm just guessing.

1. http://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.