배경지식에서 유용한 정보들이 많아서 보고, 링크한것들도 유용해서 여기에서도 링크
http://rogerdudler.github.io/git-guide/index.ko.html
git - 간편 안내서 - 어렵지 않아요!
rogerdudler.github.io
Git - 리모트 저장소
원격 저장소라 하더라도 로컬 시스템에 위치할 수도 있다. remote'' 저장소라고 이름이 붙어있어도 이 원격 저장소가 사실 같은 로컬 시스템에 존재할 수도 있다. 여기서 remote'' 라는 이름은 반드
git-scm.com
https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EB%82%B4%EB%B6%80-Git-%EA%B0%9C%EC%B2%B4
Git - Git 개체
여러분이 사용하는 쉘이 어떤 것인가에 따라 master^{tree} 표현식이 오류를 일으킬 수도 있다. Windows 에서 CMD는 ^ 문자는 이스케이프 기호로 사용한다. ^ 문자를 제대로 사용하려면 git cat-file -p master
git-scm.com
https://git-scm.com/book/ko/v2/Git%EC%9D%98-%EB%82%B4%EB%B6%80-Git-Refs
Git - Git Refs
중요한 개체 세 가지는 모두 살펴봤고(Blob, Tree, 커밋) 살펴볼 개체가 하나가 남았다. 태그 개체는 커밋 개체랑 매우 비슷하다. 커밋 개체처럼 누가, 언제 태그를 달았는지 태그 메시지는 무엇이
git-scm.com
생각만큼 이번 과제가 많이 힘들었따.. 진짜 첫날부터 이거 하라고 했으면 바로 포기했을듯.
이 이주일 사이에그새 성장한 모양이다. 얼마나 굴렸으면..
명령어를 정규식으로 받으면 좋긴 한데 때론 그냥 split(" ")로 받는게 더 깔끔하고 안정적이고 보기 좋은 것 같다. 너무 정규식만 쓸려고 하지 말자. 그럼 이렇게 할 때 뒤 단어들 합치기
order = readLine()!!.split(" ")
"commit" ->{
message = ""
for (i in 1..order.lastIndex) message += "${order[i]} "
commit.commit(message)
}
깊은 복사를 하기 위해 cloneable를 상속해서 override clone 하면 된다. data class에도 cloneable된다.
enum class
import java.util.*
data class File(var name: String, var lastEdited: Date, var content: String){
val fileStatus = {"$name(${content.length})"}
val fileStatusWithDate = {"${fileStatus()}\t$lastEdited"}
var status = FileStatus.UNSTAGED
}
data class GitLogFile(val name: String, val logs: List<CommitLog>)
enum class FileStatus{
UNSTAGED, STAGED, COMMITTED
}
FileStatus안에 UNSTAGED, STAGED, COMMITTED 라는 클래스가 있는것. 그냥 새로운 이름을 짓는걸로 생각했는데 그거 이상인 것 같다. 아님 그냥 상수처럼 쓰던지.
reduce
//log
private fun printLog() {
val strLog = curRepos!!.commitLogs.map {
"commit \"${it.message}\"\n" +
it.files
.map { f -> f.fileStatusWithDate()}
.reduce { acc, s -> "$acc\n$s" }
}.reduce { acc, s -> "$acc\n$s" }
println(strLog)
}
위의 것은 reduce 한게 String list라서 이것들을 reduce로 합친것.
해시 고유값
hash = UUID.randomUUID().toString()
실제 github에서는 .git 안에 모든 정보가 다 있는듯.
상태정보.. 흐름에 대해 코딩
클래스가 많으면 어쨌든 그 안에서 다 처리하도록 만들 수 있으니까 이 점에선 좋은 듯.
결과 내놓고 축약한건 실험 안해도 되겠지 하고 최종으로 내놓았는데 결국 버그 떴음.. 마지막의 마지막까지 꼭 테스트 해보고 최종 commit 하자.
'강의 > 부캠 안드로이드 학습정리' 카테고리의 다른 글
day 12. 멀티쓰레드. (0) | 2021.08.04 |
---|---|
day 11. 멀티프로세스, 멀티스레드, 우선순위 (0) | 2021.08.02 |
day 8. 코틀린의 함수형 프로그래밍 (0) | 2021.07.28 |
day 7 클래스 상속 (0) | 2021.07.27 |
day 6 xml, html parser 만드는데 너무 어려웠음 (0) | 2021.07.27 |