Re: [git-users] Using Two IDEs ( xCode and VS 2015) for one project

2016-04-22 Thread Gergely Polonkai
On Apr 22, 2016 19:56, "'JCL' via Git for human beings" <
git-users@googlegroups.com> wrote:
>
> Hello-
>
> I am struggling to get this right..
>
> I do alot of work on my laptop using xCode.
> My desktop is a win10 machine using VS.
>
> I am  using git on my mac but only using it on one machine.
>
> I would like to use both machines to edit and commit to my assignments,
etc.
>
> My question is how may I accomplish this...I have exhausted google
searches and
> get more confused than anything, and I am sure this is simple.
>
> When I create an xCode project, I will create multiple targets
> as there might be 2 or 3 problems per assignment.
> Xcode then creates a project file, etc.

Decide if you want to put that in the repo. If you think you may publish
this project to somewhere like GitHub (so potentially, others will work on
this project later), you shouldn't. In this case, put the project file to
.gitignore. Also, you may want to remove it from the repo with "git rm
--cached projectfile" and commit that change. --cached means it won't get
deleted from the disk, only from the repository ("database" of Git).

> When I go to my windows PC, if I go into VS and clone the repo,
> there is not a compatible project file ( obviously, as its not xCode).

If you removed the xcode stuff, this problem is already gone, except mayba
VS does the same (create files for your solutions), so you may want to
ignore them, too, just like before.

> What is the simplest way to accomplish this?  Keep in
> mind I am a beginner with git.
>
> Also, if I use a gitignore file and put it in the repo after the
> repo has already had commits, will it drop and delete the
> now ignored files moving forward?

I think I already answered that; it won't get deleted. "git rm" would
delete them from the disk *and* the repo; if you use cached, it gets
deleted from the repo only (also see [1] for some lessons learned about
this).

[1] http://gergely.polonkai.eu/blog/2013/1/14/git-rm-cached-madness

> Thanks in advance.

-- 
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] Using Two IDEs ( xCode and VS 2015) for one project

2016-04-22 Thread 'JCL' via Git for human beings
Hello-

I am struggling to get this right..

I do alot of work on my laptop using xCode.
My desktop is a win10 machine using VS.

I am  using git on my mac but only using it on one machine.

I would like to use both machines to edit and commit to my assignments, etc.

My question is how may I accomplish this...I have exhausted google searches 
and 
get more confused than anything, and I am sure this is simple.

When I create an xCode project, I will create multiple targets
as there might be 2 or 3 problems per assignment.
Xcode then creates a project file, etc.

When I go to my windows PC, if I go into VS and clone the repo,
there is not a compatible project file ( obviously, as its not xCode).

What is the simplest way to accomplish this?  Keep in 
mind I am a beginner with git.

Also, if I use a gitignore file and put it in the repo after the 
repo has already had commits, will it drop and delete the 
now ignored files moving forward?

Thanks in advance.

-- 
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] An equivalent of `--full-history` to git bisect

2016-04-22 Thread Ram Rachum
On Fri, Apr 22, 2016 at 5:29 PM, Dale R. Worley  wrote:

> Ram Rachum  writes:
> > Then, as I said in the beginning, a friend pointed me towards the
> > `--full-history` flag:
> >
> > $ git log --full-history --graph coffee
> > *   commit 0aa833916e908ea93902a6c4c227f9a884a1bcef
> > |\  Merge: cf02fbb 3068c7d
> > | | Author: Ram Rachum 
> > | | Date:   Tue Apr 19 17:44:31 2016 +0300
> > | |
> > | | Merge branch 'master' into development
> > | |
> > | * commit 3068c7d2548f1798b6840f73b13a649937339f28
> > |/  Author: Ram Rachum 
> > |   Date:   Tue Apr 19 16:02:27 2016 +0300
> > |
> > |   Adding sugar to coffee
> > |
> > * commit cf02fbbc40104cd02eea4c7c6f134ef1fd7b5661
> >   Author: Ram Rachum 
> >   Date:   Tue Apr 19 16:00:47 2016 +0300
> >
> >   Create coffee
> >
> > This makes me happy because it shows the two relevant commits, the one
> > adding sugar and the merge that removed it. So my problem is solved.
> **But
> > I really wish I could know how to make `git bisect` as well.** Does
> anyone
> > happen to know?
>
> You have to be careful here.  You *think* of commit 0aa833 as removing
> sugar, but it only removes sugar with respect to commit 3068c7.  It's
> *other* parent doesn't have sugar, in fact, has the same file tree as
> 0aa833.  When you look at 0aa833 as a child of cf02fb, what you see is a
> merge that didn't insert sugar that was present in the merged commit.
> And if sugar was some debugging print that you added to the branch to
> test it, you'd think of things the second way.
>
> The deep question is "What is the (linear) history of this commit?"  You
> *think* of the history being 0aa833-3068c7-cf02fbbc, but it's equally
> valid to think of it as 0aa833-cf02fbbc.
>
> Now with regard to git-bisect, how do you define it?  The binary search
> for "Where was this introduced?" only makes sense along a linear path.
> So which linear path should git-bisect choose through the directed
> acyclic graph of commits?
>

The first thing you do with bisect is define a good commit (3068) and a bad
commit (b7a8). Any linear path you draw between these two commits will land
on the merge (which is the commit that you want to find.) I don't know
which linear path git-bisect uses today, but I'm not seeing how it can use
a linear path that skips the bad merge. In any case, it would be nice if
it'll have an option similar to `--full-history` that'll make it not skip
that merge.


>
> Dale
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Git for human beings" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/git-users/v3__t42qbKE/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> git-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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] An equivalent of `--full-history` to git bisect

2016-04-22 Thread Dale R. Worley
Ram Rachum  writes:
> Then, as I said in the beginning, a friend pointed me towards the 
> `--full-history` flag:
>
> $ git log --full-history --graph coffee
> *   commit 0aa833916e908ea93902a6c4c227f9a884a1bcef
> |\  Merge: cf02fbb 3068c7d 
> | | Author: Ram Rachum 
> | | Date:   Tue Apr 19 17:44:31 2016 +0300 
> | |
> | | Merge branch 'master' into development 
> | |
> | * commit 3068c7d2548f1798b6840f73b13a649937339f28
> |/  Author: Ram Rachum 
> |   Date:   Tue Apr 19 16:02:27 2016 +0300 
> |  
> |   Adding sugar to coffee 
> |  
> * commit cf02fbbc40104cd02eea4c7c6f134ef1fd7b5661  
>   Author: Ram Rachum   
>   Date:   Tue Apr 19 16:00:47 2016 +0300   
>
>   Create coffee
>
> This makes me happy because it shows the two relevant commits, the one 
> adding sugar and the merge that removed it. So my problem is solved. **But 
> I really wish I could know how to make `git bisect` as well.** Does anyone 
> happen to know?

You have to be careful here.  You *think* of commit 0aa833 as removing
sugar, but it only removes sugar with respect to commit 3068c7.  It's
*other* parent doesn't have sugar, in fact, has the same file tree as
0aa833.  When you look at 0aa833 as a child of cf02fb, what you see is a
merge that didn't insert sugar that was present in the merged commit.
And if sugar was some debugging print that you added to the branch to
test it, you'd think of things the second way.

The deep question is "What is the (linear) history of this commit?"  You
*think* of the history being 0aa833-3068c7-cf02fbbc, but it's equally
valid to think of it as 0aa833-cf02fbbc.

Now with regard to git-bisect, how do you define it?  The binary search
for "Where was this introduced?" only makes sense along a linear path.
So which linear path should git-bisect choose through the directed
acyclic graph of commits?

Dale

-- 
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] An equivalent of `--full-history` to git bisect

2016-04-22 Thread Ram Rachum
Hi everyone!

I've been using Git heavily for about 7 years. A few days ago I found a 
behavior that surprised me. I found `git log`, `git blame` and `git bisect` 
to exhibit this weird behavior. [A friend][1] let me know about the 
`--full-history` flag to `git log` that solved my problem, and another 
person showed me that `--full-history` works for `git blame` too . I want 
to know, for my own education, whether there is an equivalent fix for `git 
bisect`.


Feel free to see the problem for yourself with this repo: 
https://dl.dropboxusercontent.com/u/1927707/problematic_repo.7z

Here is its log:

$ git log  --graph
* commit b7a8d7aa001d06eb7491ab5fb447a8dd3aa421a8
| Author: Ram Rachum 
| Date:   Tue Apr 19 17:45:01 2016 +0300
|
| adding more to some-file
|
*   commit 0aa833916e908ea93902a6c4c227f9a884a1bcef
|\  Merge: 2413945 3068c7d
| | Author: Ram Rachum 
| | Date:   Tue Apr 19 17:44:31 2016 +0300
| |
| | Merge branch 'master' into development
| |
| * commit 3068c7d2548f1798b6840f73b13a649937339f28
| | Author: Ram Rachum 
| | Date:   Tue Apr 19 16:02:27 2016 +0300
| |
| | Adding sugar to coffee
| |
* | commit 24139451ab954b1f0a9ef616775a3dba0ac81669
|/  Author: Ram Rachum 
|   Date:   Tue Apr 19 16:01:28 2016 +0300
|
|   Creating some-file
|
* commit cf02fbbc40104cd02eea4c7c6f134ef1fd7b5661
  Author: Ram Rachum 
  Date:   Tue Apr 19 16:00:47 2016 +0300

  Create coffee

In the very first commit, the file `coffee` was added. In the commit 
`3068c7d`, I added a line "sugar" to the `coffee` file. But then I merged 
this branch into the `development` branch, and in that merge, a mistake was 
made and the "sugar" line was removed, leaving `coffee` empty. Then another 
commit `b7a8d7a`, making an unrelated change, was added for good measure. 

Now I'm looking at my coffee, and finding there's no sugar in it. I 
distinctly remember adding sugar to my coffee. I run `git log coffee`, and 
get this output:

$ git log coffee
commit cf02fbbc40104cd02eea4c7c6f134ef1fd7b5661
Author: Ram Rachum 
Date:   Tue Apr 19 16:00:47 2016 +0300

Create coffee

That's it. `git log` is showing neither my original commit that added the 
sugar, nor the merge that removed it. Two very relevant commits that are 
missing. 

I was frustrated for about an hour by this problem, because it happened in 
a huge enterprise repo, where commits are much harder to find manually.

I also tried using `git bisect` to pin down the two commits, but it pointed 
me to the wrong commit after I finished doing all the `git bisect bad` and 
`git bisect good` actions.

Then, as I said in the beginning, a friend pointed me towards the 
`--full-history` flag:

$ git log --full-history --graph coffee
*   commit 0aa833916e908ea93902a6c4c227f9a884a1bcef
|\  Merge: cf02fbb 3068c7d 
| | Author: Ram Rachum 
| | Date:   Tue Apr 19 17:44:31 2016 +0300 
| |
| | Merge branch 'master' into development 
| |
| * commit 3068c7d2548f1798b6840f73b13a649937339f28
|/  Author: Ram Rachum 
|   Date:   Tue Apr 19 16:02:27 2016 +0300 
|  
|   Adding sugar to coffee 
|  
* commit cf02fbbc40104cd02eea4c7c6f134ef1fd7b5661  
  Author: Ram Rachum   
  Date:   Tue Apr 19 16:00:47 2016 +0300   
   
  Create coffee

This makes me happy because it shows the two relevant commits, the one 
adding sugar and the merge that removed it. So my problem is solved. **But 
I really wish I could know how to make `git bisect` as well.** Does anyone 
happen to know?


  [1]: http://www.syntevo.com/smartgithg/

-- 
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.