Re: [Feature REQ]Add CURLOPT_SSL_CIPHER_LIST to git for allowing custom cipher usages

2015-04-07 Thread Kevin D
On Mon, Apr 06, 2015 at 09:27:53AM -0300, Steven Huang wrote:
 Hi,
 
 We know git uses cURL to grab https repositories from the Internet. 
 Nowadays
 the SSL-enabled git repos are getting more and more, especially 
 self-hosted
 ones.
 
 Some of the websites including those enabled by CloudFlare, however, does
 not support common encryption ciphers provided by cURL. For example,
 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 will not be support by default in
 both cURL or git, and it is not a common cipher, Debian/RHEL does not even
 support it by default (but Fedora does, maybe others, didn't test).
 
 Is it possible to add this feature (this opt is set by calling by curl
 --cipher cipher_name) to git, allowing custom cipher usage?
 
 Thank you very much.
 

curl through git will honor settings in ~/.curlrc. So you can just add
the cipher to your ~/.curlrc, and it should work.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: how to make full copy of a repo

2015-03-29 Thread Kevin D
On Sun, Mar 29, 2015 at 04:21:26AM +0200, Christoph Anton Mitterer wrote:
 On Sat, 2015-03-28 at 15:31 +0100, Kevin D wrote: 
 [..]
 
  * reflog (history of refs, though, by default disabled for bare
repositories)
 is there a way to get this copied?
 
 

No, the reflog is considered something private to the repository, so
there is no way to git it through git clone.

 [..] 
 
  git clone --mirror is used for repositories that regularly get updates
  from the repositories they were cloned from. Though this is not what you
  want, it's not difficult to reset the refspecs to the default refspecs.
 What do you mean here? What would I need to reset exactly?

git clone --mirror sets up the fetch refspec in such a way that local
refs would get reset to whatever upstream has:

+refs/*:refs/*

So every time you would fetch / pull, all your branches would reflect
the way they are on the mirrored repo (which is why it's called mirror).

The default refspec is:

+refs/heads/*:refs/remotes/origin/*

Which would only fetch heads (branches), and maps them as remote
tracking branches, so that your local branches are left alone.

  git clone --mirror is the closest you are going to get by only using
  git.
 I see, thanks :)
 
  So to summarize, git clone is only used for cloning history, which means
  objects and refs, the rest is not part of cloning. To get more, you have
  to go outside git.
 
 Thanks :)
 Chris.


--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Git Rev News edition 1 published

2015-03-28 Thread Kevin D
On Wed, Mar 25, 2015 at 11:00:21AM +0100, Christian Couder wrote:
 Hi,
 
 Git Rev News edition 1 is now available:
 
 http://git.github.io/rev_news/edition-1.html
 
 Thanks a lot to all the contributors and helpers, especially Junio!
 
 Enjoy,
 Christian and Thomas.

Thank you for your work on this.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: how to make full copy of a repo

2015-03-28 Thread Kevin D
On Sat, Mar 28, 2015 at 03:56:37AM +0100, Christoph Anton Mitterer wrote:
 Hey.
 
 I was looking for an ideally simple way to make a full copy of a git
 repo. Many howtos are floating around on this on the web, with also lots
 of voodoo.
 
 
 First, it shouldn't be just a clone, i.o.w.
 - I want to have all refs (local/remote branches/tags) and of course all
 objects from the source repo copied as is.
 So it's local branches should become my local branches and not remote
 branches as well - and so on.
 Basically I want to be able to delete the source afterwards (and all
 backups ;) ) and not having anything lost.
 
 - It shouldn't set the source repo as origin or it's branches as remote
 tracking branches, as said it should be identical the source repo, just
 freshly copied via the Git aware transport mechanisms.
 
 - Whether GC or repacking happens, I don't care, as long as nothing that
 is still reachable in the source repo wouldn't get lost (or get lost
 once I run a GC in the copied repo).
 
 - Whether anything that other tools have added to .git (e.g. git-svn
 stuff) get's lost, I don't care.
 
 - It should work for both, bare and non-bare repos, but it's okay when
 it doesn't copy anything that is not committed or stashed.
 
 
 
 I'd have said that either:
 $ git clone --mirror URl-to-source-repo copy
 for the direction from outside the source to a copy,
 or alternatively:
 $ cd source-repo
 $ git push --mirror URl-to-copy
 for the direction from within the source to a copy with copy being an
 empty bare or non-bare repo,
 would do the job.
 
 But:
 
 a) but the git-clone(1) part for --mirror:
and sets up a refspec configuration such that all these refs are
overwritten by a git remote update in the target repository.
kinda confuses me since I wanted to get independent of the source
repo and this ssems to set up a remote to it?
 
 b) do I need --all --tags for the push as well?
 
 c) When following
https://help.github.com/articles/duplicating-a-repository/
it doesn't seem as if --mirror is what I want because they seem to
advertise it rather as having the copy tracking the source repo.
Of course I read about just using git-clone --bare, but that seems to
not copy everything that --mirror does (remote-tracking branches,
notes).
 
So I'm a bit confused...
 
 
 1) Is it working like I assumed above?
 2) Does that also copy things like git-config, hooks, etc.?
 3) Does it copy the configured remotes from the source?
 4) What else is not copied by that? I'd assume anything that is not
tracked by git and the stash of the source?
 
 
 
 Thanks a lot,
 Chris.

Git clone is never going to get you a copy where nothing is lost.

What you are losing on clone is:

* config settings (this includes the configures remotes)
* hooks
* reflog (history of refs, though, by default disabled for bare
  repositories)
* Stashes, because the reference to them is stored in the reflog
* unreferenced objects (though you said those are not a requirement, it
  is still something that is lost)

git clone --mirror is used for repositories that regularly get updates
from the repositories they were cloned from. Though this is not what you
want, it's not difficult to reset the refspecs to the default refspecs.
Because it fetches all refs, it's not necessary to add --all --tags
(because tags are also refs).

git clone --mirror is the closest you are going to get by only using
git.

I guess you are aware of this, but if you want to retain more
information, you have to rely on other means, like scp to get the other
things

So to summarize, git clone is only used for cloning history, which means
objects and refs, the rest is not part of cloning. To get more, you have
to go outside git.

Hope this helps to clear some confussion.

Kevin
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] clone: Warn if clone lacks LICENSE or COPYING file

2015-03-26 Thread Kevin D
On Sat, Mar 21, 2015 at 02:06:33PM -0400, David A. Wheeler wrote:
 Warn cloners if there is no LICENSE* or COPYING* file that makes
 the license clear.  This is a useful warning, because if there is
 no license somewhere, then local copyright laws (which forbid many uses)
 and terms of service apply - and the cloner may not be expecting that.
 Many projects accidentally omit a license, so this is common enough to note.
 For more info on the issue, feel free to see:
 http://choosealicense.com/no-license/
 http://www.wired.com/2013/07/github-licenses/
 https://twitter.com/stephenrwalli/status/247597785069789184
 

LWN article that lead to this patch: https://lwn.net/Articles/636261/
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [v3 PATCH 2/2] reset: add tests for git reset -

2015-03-20 Thread Kevin D
On Fri, Mar 20, 2015 at 04:02:38AM +0530, Sundararajan R wrote:
 Yes. I made a mistake while framing the sentence. I should have proof read
 the commit message more thoroughly.  Should I submit a new patch with the
 corrected commit message?

Yeah, you can combine that with the comments from Matthieu.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [v3 PATCH 2/2] reset: add tests for git reset -

2015-03-19 Thread Kevin D
On Wed, Mar 18, 2015 at 02:05:09PM +0530, Sundararajan R wrote:
 The failure case which occurs on teaching git is taught the '-' shorthand
 is when there exists no branch pointed to by '@{-1}'. But, if there is a file
 named - in the working tree, the user can be unambiguously assumed to be 
 referring to it while issuing this command.
 

The first line is hard to read. I think the is taught part is
redundant.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Git with Lader logic

2015-03-19 Thread Kevin D
On Thu, Mar 19, 2015 at 07:14:52AM +, Bharat Suvarna wrote:
 Thanks all .. I will have a look. But could I just set this up on my laptop 
 and checking this works on system first before installing one of Git on server
 

Sure, that's no problem. Git happily runs just locally on your own
machine and does not depend on a server.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Git with Lader logic

2015-03-18 Thread Kevin D
On Tue, Mar 17, 2015 at 11:33:54PM +, Bharat Suvarna wrote:
 Hi 
 
 I am trying to find a way of using version control on PLC programmers like 
 Allen Bradley PLC. I can't find a way of this.
 
 Could you please give me an idea if it will work with Plc programs. Which are 
 basically Ladder logic.
 

I'm not familiar with these programs, so I can't give you specific
advice about this.

Although git is not very picky about the contents, it is optimized to
track text files. Things like showing diffs and merging files only works
on text files.

Git can track binary files, but there are some disadvantages:

- Diff / merge doesn't work well
- Compression is often difficult, so the repository size may grow
  depending on the size of the things stored

These disadvantages are not limited to only git, other SCM systems also
have to deal with these problems.

So if the Ladder logic is represented as text source, there is no
problem with it. If it'sbinary, there might be other sollutions better
suited.

Kevin
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: fatal: Unable to mark file .ruby-version

2015-03-15 Thread Kevin D
On Sun, Mar 15, 2015 at 05:58:19PM +0100, t.gumme...@gmail.com wrote:
 On 03/15, Arup Rakshit wrote:
  On Sunday, March 15, 2015 01:30:04 PM you wrote:
   
   With --assume-unchanged you're promising git that you will not change
   a file that is already in the repository.  Git doesn't check those
   files for changes anymore, which can improve performance.
   
  
  I didn't understand your point. Could you please elaborate more on it ?
 
 --assume-unchanged only works on files that you added on the
 repository, not on untracked files.  Because you don't seem to want
 these files in the repository, update-index --assume-unchanged will
 not work for you.
 

And to elaborate what on what t.gummerer meant earlier: git update-index
--assume-unchanged is often abused to ignore already tracked files,
thinking that they can change the file while git happily ignores it.

--assume-unchanged was neaver built for this purpose, it's built for
large code bases where parts of the code base never changes, and git
checking this part would only slow it down. So that's why it's called a
promise to git that the file never changes, because git doesn't check
the status of the file everytime you run git status.

But because the file is still tracked, any commit that changes the file
causes git to still update that file, but git will then protest, because
it found it the file actually changed in the mean time, and you broke
that promise.

But also already said, this only applies to tracked files, so not to files
that aren't being tracked in the first place.

Kevin
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] forbid log --graph --no-walk

2015-03-14 Thread Kevin D
Subject is usually prefixed with the part that is changed, in this case
log.

For example: 

log: forbid log --graph --no-walk

On Sat, Mar 14, 2015 at 11:31:59PM +0200, epilys wrote:
 In git-log, --graph shows a graphical representation of a
 continuous commit history, and --no-walk shows discrete specified
 commits without continuity. This doesn't make sense, so we forbid the
 combined use of these flags.
 
 Signed-off-by: Manos Pitsidianakis epi...@norn.io
 ---
  builtin/log.c  | 2 ++
  t/t4202-log.sh | 4 
  2 files changed, 6 insertions(+)
 
 diff --git a/builtin/log.c b/builtin/log.c
 index dd8f3fc..0194133 100644
 --- a/builtin/log.c
 +++ b/builtin/log.c
 @@ -155,6 +155,8 @@ static void cmd_log_init_finish(int argc, const char
 **argv, const char *prefix,
   memset(w, 0, sizeof(w));
   userformat_find_requirements(NULL, w);
  +if (rev-graph  rev-no_walk)

Patch got corrupted here (Space before +)

 +die(--graph and --no-walk are incompatible);
   if (!rev-show_notes_given  (!rev-pretty_given || w.notes))
   rev-show_notes = 1;
   if (rev-show_notes)
 diff --git a/t/t4202-log.sh b/t/t4202-log.sh
 index 5f2b290..4dd939b 100755
 --- a/t/t4202-log.sh
 +++ b/t/t4202-log.sh
 @@ -887,4 +887,8 @@ test_expect_success GPG 'log --graph
 --show-signature for merged tag' '
   grep ^| | gpg: Good signature actual
  '
  +test_expect_success 'forbid log --graph --no-walk' '

Here also

 +test_must_fail git log --graph --no-walk
 +'
 +
  test_done
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Git very slow ?

2015-03-08 Thread Kevin D
On Sat, Mar 07, 2015 at 01:30:07AM +, Ken Moffat wrote:
 Hi, please CC me if that is not your usual fashion, because I am not
 subscribed.
 
 I use git for my build scripts - those are accessed over nfs.  Since
 I started using 2.1 and later (I don't think I used 2.0) commands
 such as 'commit' take a long time before anything happens.  I
 assumed that the newer version meant this would take longer.
 
 But today^Wyesterday I was bisecting the kernel on a local
 filesystem - even when the number of revisions left to test was in
 the single digits, git bisect took a long time to decide which
 revision should be the next one to test.  The filesystems are ext4.
 Is this sort of delay normal now?
 
 What really prompted me to ask is that I ran git blame on a script,
 to see when I made a particular change so that I could add that
 information to a ticket, and almost gave up waiting because it felt
 as if it was taking for ever.
 

What kind of repository are we talking about? How many files, how big?
Git should not have become significantly slower recently.

Also, might there be anti-virus software that slows down file access?
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Checkout --force without complete overwrite?

2015-03-06 Thread Kevin D
On Fri, Mar 06, 2015 at 02:39:58AM +, Phil Hord (hordp) wrote:
 I have a repo whose workdir tends to get pretty dirty as I jump around from 
 branch to branch tending weeds and whatnot.   Sometimes when I try to switch 
 branches git refuses because of local file changes.
 
   git checkout otherbranch
   error: Your local changes to the following files would be overwritten by 
 checkout:
   foo.txt
   bar.c
   Please, commit your changes or stash them before you can switch branches.
   Aborting
 
 I resolve this by examining my local changes and deciding if I want to keep 
 them or not.  I keep the changes in the conflicting files that I want, and 
 then I discard the rest.
 
 One way to discard the rest is to say 
git checkout HEAD -- foo.txt bar.c  git checkout otherbranch
 
 But sometimes the list of local-change conflicts I want to discard is too 
 long and this recipe seems like a good alternative to me:
git checkout -f otherbranch
 
 But this is disastrous, because I have been focused on examining the 
 conflicting local changes in foo.txt and bar.c, but I forgot about my 
 non-conflicting changes to baz.c, lost as it is in a sea of untracked files 
 making up the majority of my workdir local changes.  So all my untracked 
 files make the leap unscathed, but my precious forgotten changes in baz.c get 
 wiped out by the checkout --force, even though the baz.c in index and in 
 otherbranch are the same.
 
 I've read the documentation for 'git checkout --force' several times and I 
 have a hard time deciding what it means to do.  But I'm sure it's doing what 
 it's designed to do and what the man page says it will.  (English is my first 
 language, btw.)

Git normally refuses to overwrite uncomitted changes when checking out
complete commits (so not when you check out individual files). --force
overrides that behaviour.

 
 What I am seeking is some way to checkout the other branch and replace my 
 conflicted local changes while ignoring my non-conflicting local changes in 
 tracked files.  Something like --force-gently, maybe.  Does such an option 
 exist?
 
 I could script something, but it comes up only often enough to bite me, so 
 I'm sure I'd forget I had scripted it.
 
 Thanks,
 Phil

What about git checkout -m otherbranch. This will try to merge the
commit you checkout in the working tree, creating conflicts when they
happen. This way, you can decide per conflict what you want to do, while
non-conflicting changes are just kept.

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html