GitのGUIツールを探して:gitkとgit-gui

SourceTreeはLinuxで使えないみたいなので、他のGUIツールを探していた。

結局オフィシャルのguikgit-guiを使ってみることに。

参考サイト(日本語)
https://riptutorial.com/ja/git/example/18336/gitk%E3%81%A8git-gui

 

英語の本のリソース 日本語版も有る
https://git-scm.com/book/en/v2/Appendix-A%3A-Git-in-Other-Environments-Graphical-Interfaces

ちょっといじったけど、よくわからんかった。

ブランチの履歴が視覚化されて見やすかった。

Advertisements

Git push error:Gitでプッシュできなかった件

masa@lve-imac2:~/Desktop/git/masa-examples$ git push https://github.com/iamaturtle113/masa-examples.git master
Username for 'https://github.com': iamaturtle113
Password for 'https://iamaturtle113@github.com': 
To https://github.com/iamaturtle113/masa-examples.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/iamaturtle113/masa-examples.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

ローカルで新しいディレクトリを作って、その中にファイル入れたら、プッシュエラーでた。

一度pullする。

git pull https://github.com/iamaturtle113/masa-examples.git master

ずらずらファイルできた。

masa@lve-imac2:~/Desktop/git/masa-examples$ git pull https://github.com/iamaturtle113/masa-examples.git master
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 6 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.
From https://github.com/iamaturtle113/masa-examples
* branch master -> FETCH_HEAD
Adding practice/testImport.java
Adding practice/testImport.class
Adding practice/candelTestdir/IOMethods.java
Adding practice/candelTestdir/IOMethods.class
Adding practice/candelTestdir/.IOMethods.java.swp
Auto-merging practice/Thread1.java
CONFLICT (content): Merge conflict in practice/Thread1.java
Adding practice/Thread1.class
Adding practice/Thread1$ImpleRunnable2.class
Adding practice/Thread1$ImpleRunnable.class
Adding practice/RegexPractice01.java
Adding practice/RegexPractice01.class
Adding practice/IOMethods.class
Adding practice/.testImport.java.swp
CONFLICT (directory/file): There is a directory with name practice in HEAD. Adding practice as practice~b343e0c4b8b3b437105f2e8e535e69781941291c
Automatic merge failed; fix conflicts and then commit the result.
masa@lve-imac2:~/Desktop/git/masa-examples$ git push https://github.com/iamaturtle113/masa-examples.git master

 

でpushしたけど、また同じエラー。

To https://github.com/iamaturtle113/masa-examples.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/iamaturtle113/masa-examples.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

とりあえず、URLをオリジンに追加。

git remote add origin https://github.com/iamaturtle113/masa-examples.git

 

次にマージ

masa@lve-imac2:~/Desktop/git/masa-examples$ git fetch && git merge origin/master
From https://github.com/iamaturtle113/masa-examples
* [new branch] master -> origin/master
error: 'practice' appears as both a file and as a directory
error: practice: cannot drop to stage #0
error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

普通ならコレで解決するらしいが、今回はだめだ。

masa@lve-imac2:~/Desktop/git/masa-examples$ git merge origin/master
error: 'practice' appears as both a file and as a directory
error: practice: cannot drop to stage #0
error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.

どうしよう。

masa@lve-imac2:~/Desktop/git/masa-examples$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit")

Unmerged paths:
(use "git add <file>..." to mark resolution)

added by them: practice
both modified: practice/Thread1.java

Untracked files:
(use "git add <file>..." to include in what will be committed)

practice~b343e0c4b8b3b437105f2e8e535e69781941291c

no changes added to commit (use "git add" and/or "git commit -a")

素直に

git add .
git status で確認すると、エラー消えた。
git merge origin/master -> commitしてからマージしてくれと

masa@lve-imac2:~/Desktop/git/masa-examples$ git merge origin/master
fatal: You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you merge.
masa@lve-imac2:~/Desktop/git/masa-examples$ git merge origin/master
Already up-to-date.

masa@lve-imac2:~/Desktop/git/masa-examples$ git push https://github.com/iamaturtle113/masa-examples.git masterUsername for 'https://github.com': iamaturtle113
Password for 'https://iamaturtle113@github.com': 
Counting objects: 21, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (21/21), 7.34 KiB | 0 bytes/s, done.
Total 21 (delta 6), reused 0 (delta 0)
remote: Resolving deltas: 100% (6/6), done.
To https://github.com/iamaturtle113/masa-examples.git
b343e0c..b442916 master -> master

解決です。。

 

参考
https://qiita.com/takanatsu/items/fc89de9bd11148da1438

Java build error: When build java code made in eclipse on the terminal.

I couldn’t solve package import problems.
First package should not be used “-(hyphen)”.
My one was masa-example so couldn’t be used. This was git repository name..
So I made “practice” package.
But import my own library didn’t go smoothly..

My mistake was compile directory path and javac command…

javac -d . practice/RegexPractice01.java

Java programs which has dependency class without classpath should be compiled at default root directory with javac -d option..

 

mistake commands

masa@lve-imac2:~/Desktop/git/masa-examples$ javac RegexPractice01.java
RegexPractice01.java:29: error: cannot find symbol
println(str);

masa@lve-imac2:~/Desktop/git/masa-examples$ javac -cp practice.RegexPractice01.java
javac: no source files
Usage: javac <options> <source files>
use -help for a list of possible options

masa@lve-imac2:~/Desktop/git/masa-examples$ javac -d out practice/RegexPractice01.java practice/IOMethods.java
javac: directory not found: out
Usage: javac <options> <source files>
use -help for a list of possible options

 

 

 

 

GAE (Google App Engine)で遊ぶ

公式サイトからダウンロード。ワタクシの場合はJavaザマス。

https://cloud.google.com/appengine/downloads?hl=ja

ダウンロードしたあとは、解凍して、シェルにパスを通すみたい。binディレクトリ。
ファイルの置き場迷うが、 /usr/local/ 下とする

export PATH="$PATH:/usr/local/appengine-java-sdk-1.9.63/bin/"
その際の参考資料
Windowsユーザーに教えるLinuxの常識(3):各ディレクトリの役割を知ろう(サブディレクトリ編) (2/2)
http://www.atmarkit.co.jp/ait/articles/0109/07/news002_2.html

 

以下、クイックスタートに沿って、リアルタイムで進行中

 

git cloneでソースのダウンロード。
私の場合 ~/Code/googleAppEngine/ にダウソ。

mvn appengine:devserver

を実行。
なんか、

[INFO] INFO: Dev App Server is now running

となり、サーバーが起動中になってるみたい。
http://localhost:8080/

にブラウザからアクセスすると、

Event tracked.

と書いてある。

mvn appengine:devserver コマンドを実行するディレクトリ間違えた。

…/appengine/helloworldで上記のコマンド実行、localhost:8080/にアクセス ->

ブラウザに

Hello, world

と書いてある。

 

次は、プリント文の中身を書き換え、mvn clean packageを実行して、リビルド。
ワタクシのバアイハ、

This is Test web page of Masataka Nakamura a.k.a La Ville Eternell
Overriding Google App Engine Example 'Hello World App'.
This is Java SDK.
Other contents coming soon maybe..
By teh way I wanna go Siliycon Valley... huh,,,

にした。

 

そして、デプロイのためにCloud Platformプロジェクトと、App Engineアプリケーションを作った。

プロジェクト名は… λ 笑
masa’s first project にした。

リージョンはアメリカ西海岸にしてみた。

サインインに

4/cQCmazgJm8NWlnKt4JJbZvrMqjeHTr1VINh-lDFTIPp7rMZJ1qvQXRw

をアプリにコピペしてくれとある。

なんかよくわからないなと思ったら、google cloud platformに登録しなきゃいけないっぽい。

登録してSDKをインストール。linux版はココから

gcloud init とかでログインしてたら、
.botoファイルを作ったらしいな。これ。

 

・Ubuntuのエラー

よくコンソールみたら、

(java:18774): Gtk-WARNING **: Unable to locate theme engine in module_path: “adwaita”,

ってエラーも出てる

 

https://askubuntu.com/questions/774664/gtk-warning-unable-to-locate-theme-engine-in-module-path-adwaita-error-o

sudo apt install gnome-themes-standard

で解決かな。

 

SuccessCodeのペースト先がわからん

IAM

 

オンラインのチュートリアルに従うと、なんかデフォルトの…でデプロイできなかった。

yamlがないとgcloudコマンドでデプロイできないとなる。
yaml作るか?

gcloud init で 使うプロジェクトをオンラインチュートリアルでつくったものに変えた。

cloudshellでmavenのプラグイン足りてないってエラー。

appengine系のプラグイン足りてないみたい

mvn appengine:devserver これはローカルからアクセスできるようにするためのコマンド

 

mvn appengine:updateの結果
[INFO] Running -A masas-first-project -V masas-first-project1 –oauth2 update /home/masa/Code/googleAppEngine/java-docs-samples/appengine/helloworld/target/appengine-helloworld-1.0-SNAPSHOT
The following URL can be used to authenticate:
https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=550516889912.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&scope=https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/cloud-platform
Attempting to open it in your browser now.

これはappcfgの話みたい。それへの許可を与えるための画面かな。

英語版の”Quickstart for Java 8 for App Engine Standard Environment“を試す。

gcloud auth application-default login

で、ブラウザからAuth Libraryをトラストするかというの話になる。トラストした。

You are now authenticated with the Google Cloud SDK!となる

 

gcloudコマンドの説明
https://cloud.google.com/sdk/gcloud/

 

 gcloud components install app-engine-java

コマンドを実行。なんかインストールした。

git clone https://github.com/GoogleCloudPlatform/getting-started-java.git

で別のソースをダウンロード

 

gcloud info
たたいたら、ダウンロードディレクトリにインストールされていることがわかった。移動したいな

Installation Root: [/home/masa/Downloads/google-cloud-sdk]

 

 

mvn appengine:deployのエラーコード

[INFO] GCLOUD: ERROR: (gcloud.app.deploy) The current Google Cloud project [testproject-218805] does not contain an App Engine application. Use `gcloud app create` to initialize an App Engine application within the project.

`gcloud app create`でプロジェクトのアップエンジンアプリを初期化してくださいと出てる。
そのとおりにして、またmvn appengine:deployすると。。

Screenshot from 2018-10-08 15-04-36

実は、stackoverflowにも質問していた

 

Javaコードの管理 その二: Git, Github, Maven, Eclipseの使用

rpart_plot

 

はい、「Javaコードの管理 その一: Git, Github, Maven, Eclipseの使用」に続き、その二でございます。
前回の内容というのは、GitとGithubの理解と、Eclipse上での実行でした。

やはり、公開することで、”仄暗い部屋で一人、ディスプレイのきらめきの中、メガネを光らせている人物”ではないことがわかっていただけるし、それこそ、クモの巣状に繋がりが広がっていくので、とても意味のあることだと思います。「Gitコマンドはターミナル上では小さな命令だが、アクセス性にとっては大きな一歩なのです」w。

そして、ここでMavenの登場が起こるのです。Eclipseの標準的なビルド、ディレクトリ構成を使っているだけでは、Javaアーキテクトとして、構造が把握できていない段階に留まっているのです。(まぁ数週間前の私もそうでしたが)ビルドツールに通じて初めて、ソフトウェア製品の作業工程が理解できるのです。

Mavenは、POM(Project Object Model)ファイルに予め指示を記述しておくことで、煩雑な作業を自動化し、製品のパッケージング、アップデートが簡単にできます。私の場合は、実行可能Jarを自動で更新して生成させたい、というのが今の課題です。

そのためには、Mavenのアセンブリプラグインを使う必要があります。その設定がまた簡単ではなく、POM中で使うオブジェクト(ファイル)の依存関係を理解せねばなりません。

 

オフィシャルガイド
https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

日本語
https://kengotoda.gitbooks.io/what-is-maven/preface/

イメージピクチャ
https://www.marketechlabo.com/r-decision-tree/